Yep I've observed the same thing. In at_data_read there is no code to check if the data read constitutes a complete line, or just a fragment. The serial port is set to -ICANON, which means that there is no buffering up to a LF being done by the OS. Furthermore, there is no code to deal with the situation you describe, that the data just read is in fact an incoming DeliverSM or Status Report. I started to fix it, then gave up since I was creating too many 2nd order problems elsewhere. My suggestion is that whoever wrote these components, go back and revisit this problem, or document them sufficiently well that others can take on the work without breaking everything. I suspect that this code has only really been stressed with outound messages since that is what most people seem to want to do (btw. what *is* a ringtone ?). best Roy -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Alexei Pashkovsky Sent: 02 July 2001 12:10 To: Steve Kennedy; [EMAIL PROTECTED] Subject: Re: Archives up Importance: Low Hi all, I have a general question regarding Kannel and Serial device interfaces it uses with Sema, AT, may be other modules.. I saw a few times situations when serial port call returns cut or corrupted packet string, both in Sema and AT module (you may see this in AT when message is coming and you try to send one same time, this causes Kannel to make retries etc). Same problem is with Sema (when there's an incoming packet request, and gw tries to send outgoing one same time, reading from port gives corrupted string). Any serial device specialists with tips or propositions ? Thanks :)