Try adding some debugs to see if you can find where the breakdown occurs:

Code:
Trisa = 1
 Trisb = %00100000
 portb = 0

if portb.5 = 1 then
SerOut2 cSEROUT_PIN,cBAUD,["PRE HI",13]
else  
SerOut2 cSEROUT_PIN,cBAUD,["PRE LOW",13]
endif
  
 while portb.5 = 1

if portb.5 = 1 then
SerOut2 cSEROUT_PIN,cBAUD,["LOOP HI",13]
else  
SerOut2 cSEROUT_PIN,cBAUD,["LOOP LOW",13]
endif

 wend

if portb.5 = 1 then
SerOut2 cSEROUT_PIN,cBAUD,["AFT HI",13]
else  
SerOut2 cSEROUT_PIN,cBAUD,["AFT LOW",13]
endif

 high portb.4
Norm