--- framework/subsystems/ogsmd/gsm/parser.py~ 2008-07-31 19:20:29.000000000 +0200 +++ framework/subsystems/ogsmd/gsm/parser.py 2008-08-01 04:42:16.000000000 +0200 @@ -155,14 +155,19 @@ self.curline += b return self.state_inline else: - if b == "\r": - return self.state_inline_r - # usually this should not happen, but some SMS are badly formatted - if b == '\n': - if s: - return self.solicitedLineCompleted() - else: - return self.unsolicitedLineCompleted() + if self.curline.count('"')%2: + if DEBUG: print "WARNING allowing \\r\\n in "" on curline: ", repr(self.curline) + self.curline += b + return self.state_inline + else: + if b == "\r": + return self.state_inline_r + # usually this should not happen, but some SMS are badly formatted + if b == '\n': + if s: + return self.solicitedLineCompleted() + else: + return self.unsolicitedLineCompleted() def state_inline_r( self, b, s ): if b == '\r':