Hi Bruce, thanks for replying. This is how I am doing now:

@ __CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_ON & _BOD_OFF & _CPD_ON & _IESO_OFF & _FCMEN_ON & _WUREN_OFF

OSCCON = %01100000 ' Internal 4MHz select
OPTION_REG = 0 ' internal pull-ups on/off according to value written on port
CMCON0 = 7 ' disable comparator
VRCON = 0 ' disable internal Vref
GPIO = %00000000 ' LED off on boot
TRISIO = %011001 ' GPIO.0 / 3,4= input, rest outputs
PIR1 = 0 ' clear peripheral int flags
PCON.5 = 1 ' ultra low power wakeup enabled
Include "modedefs.bas"

Main:
GPIO.0= 1 ' set data latch on GPIO.0
TRISIO.0= 0 ' GPIO.0 = output (charging cap)
PAUSEUS 100 ' charge cap for 1
TRISIO.0= 1 ' GPIO.0 = input to discharge cap
IOCA.0= 1 ' int on change enabled for GPIO.0
IOCA.4=1 ' int on change enabled for sensor @ GPIO.4
while gpio.4 : wend
INTCON= %00001000 ' global ints disabled, int on change enabled
@ SLEEP ' put PIC to sleep
GOSUB Test ' go test for under voltage condition AND send data if pin is made high by sensor
GOTO Main

Though the code is working fine for now, I would still like an opinion if the above way of doing this is the reliable way in long term.
Thanks again