--- gw/smsc/smsc_smpp.c	2009-10-19 17:20:55.000000000 +0300
+++ gw/smsc/smsc_smpp.c	2009-10-19 17:19:09.000000000 +0300
@@ -1312,9 +1312,9 @@
                 /* only if not already here */
                 if (msgid == NULL) {
                     if ((curr = octstr_search(respstr, octstr_imm("id:"), 0)) != -1) {
-                        vpos = octstr_search_char(respstr, ' ', curr);
-                        if ((vpos-curr >0) && (vpos != -1))
-                            msgid = octstr_copy(respstr, curr+3, vpos-curr-3);
+                        if ((vpos = octstr_search_char(respstr, ' ', curr)) == -1)
+                           vpos = octstr_len(respstr) + 1;
+                        msgid = octstr_copy(respstr, curr+3, vpos-curr-3);
                     } else {
                         msgid = NULL;
                     }
@@ -1322,16 +1322,16 @@
 
                 /* get err & status code */
                 if ((curr = octstr_search(respstr, octstr_imm("stat:"), 0)) != -1) {
-                    vpos = octstr_search_char(respstr, ' ', curr);
-                    if ((vpos-curr >0) && (vpos != -1))
-                        stat = octstr_copy(respstr, curr+5, vpos-curr-5);
+                    if ((vpos = octstr_search_char(respstr, ' ', curr)) == -1)
+                        vpos = octstr_len(respstr) + 1;
+                    stat = octstr_copy(respstr, curr+5, vpos-curr-5);
                 } else {
                     stat = NULL;
                 }
                 if ((curr = octstr_search(respstr, octstr_imm("err:"), 0)) != -1) {
-                    vpos = octstr_search_char(respstr, ' ', curr);
-                    if ((vpos-curr >0) && (vpos != -1))
-                        err = octstr_copy(respstr, curr+4, vpos-curr-4);
+                    if ((vpos = octstr_search_char(respstr, ' ', curr)) == -1)
+                        vpos = octstr_len(respstr) + 1;
+                    err = octstr_copy(respstr, curr+4, vpos-curr-4);
                 } else {
                     err = NULL;
                 }
