I have noticed this, too, but have no idea why this occurs. I thought that bluetooth connection occurred during the open() call, but it's possible that it's occurring during the read() call. I have no idea how to handle this, though, since I am already setting the non-blocking flag.