If I skip reading the port and just do a SEROUT loop, then I always read the initial value that was input on the port at the time of reset. Like I said, if the PIC is reset, it does read the port with the correct inputs. It just doesn't read continuously during the program at every reading. Its almost like the port stop working after reset. I am using melabs programmer v4.10, MicroCode studio v2.3.