I already ask in Microchip without answer, so if you couldn't answer me you can save your time and skip it

I'd like to know if someone was successful programming your own program using a absolute jump to the bootloader.
What I'm doing is, I've got the bootloader and my own program and I'm trying to program both with the ICD3. First I'm programming the bootloader and second my own program, which I'm using the same linker but protecting the bootloader memory space. Even I configure the ICD3 for not erase before to program the second one.
What I'm trying to do is keep safe the bootloader memory space and then after when I'm in my program press a button (touch sense) and then start the bootloader routine. So after reset, It'll always go to user main and then if the touch sense button is press go to bootloader.
Am I doing something wrong?

P.S.: I tried to check the touch sense button in the main of the bootloader, but I couldn't initialise there.