I've tried some more things and put in delays into the code... The delays seem to fix up the LCD display a bit. So perhaps the 16F88 is faster than the 16F84A (even though they are on the same crystal?) The system still restarts though. Wouter> I've triple-triple checked the Watch dog timer, hehe I am using IC-Prog, and the setting is definitly OFF, when I read it back it also is off, the config word is 0x3FEA I've also explicitly set SWDTEN = 0 to disable the watchdog timer from software I have tried disabling every interupt I can (without losing the timer0 interupt) by doing the following: RBIE =0; //Disable change on port B interupts INT0IE =0; //Disable external interupt pin PEIE = 0; //Disable peripheral interupts TMR0IE = 1; //Enable TMR0 interupt GIE = 1; //Enable all selected interupts William> And I've just tried the CMCON = 0x07, even though you did mention it shouldn't do anything.. Which it didn't, thanks for the input though. Maarten> Yeah, I'm pretty sure I want to use the 16F88, mainly because I want to be able to expand into using the UART functionality of it later. At the moment, I just want to get the original code working on it and stable. Thanks for pointing out the other one though, I didn't know of that option I'm sooo lost on this one :S Thanks all, more thoughts? I've posted the code on my uni site if anyone has the time to go through it... I can't see anything wrong with what I'm doing But then again, I havn't been doing this stuff for long either! http://www.ug.it.usyd.edu.au/~jgre5893/pic/ --Josh Ps -- This doesn't have anything to do with my uni work, so don't worry you aren't doing assignments for me, The uni just provides a wonderful FREE place to put a webpage :) -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist