On the following code the phone responds ..."REC READ",... if the message was read sometime before. If you have a fresh new message then this becomes UNREAD as you state on your code.
So, why don't you change your code to:
HSerin 5000,loop,[wait("READ"),... since the word READ is present all the time?
Ioannis
' +CMGR: "REC READ","+xx1234567890",,"05/05/26,17:19:23+00" GOOD
' Loop could be setup as a routine such as:
' Loop:
' List new Messages again - as above (think about it)
' HSerout ["AT+CMGL",13,10]
HSerin 5000,loop,[wait("UNREAD"),skip 3,STR Caller\13,skip 4,STR GSMTime\17,skip 6, STR GSMBUFFER\16\13]
Bookmarks