A possible reason: http://cboard.cprogramming.com/c-programming/98649-serial-port-read-blocking.html
from the last part of the webpage: Ah ha! Indeed! - I think I have found the problem, it seems that the Kernel is using the serial port to print error messages to (for some reason) – I have turned it off and it works like a charm now! - though I may need to find out why I was getting errors! - heh possible answer?
