Chris, Just use the busy bit to confirm the display is ready for the next command.... As I said in the my first return post, the commands are processed by the display far too slowly and I see no delays in your code after any of the cursor control commands and you are probably running it in 4 bit mode as opposed to 8 bit mode which now allows for even more data to be lost. looking at the timing constraints in the data sheet, I'm supprised the thing is working at all. The processor onboard the display is probably doing far more work than your code is. If you are commited to using this type of display with it's down falls because it looks good then you MUST you it as it was intended to be used it you expect it to relay the information correctly. No more to say...