Index: gw/urltrans.c
===================================================================
RCS file: /home/cvs/gateway/gw/urltrans.c,v
retrieving revision 1.111
diff -a -u -b -r1.111 urltrans.c
--- gw/urltrans.c	14 Jan 2009 11:11:46 -0000	1.111
+++ gw/urltrans.c	27 Aug 2010 00:20:28 -0000
@@ -878,7 +878,7 @@
     Octstr *white_list_regex;
     Octstr *black_list_regex;
     Octstr *keyword_regex;
-    Octstr *os, *tmp;
+    Octstr *os, *tmp = NULL;
     
     grpname = cfg_get_group_name(grp);
     if (grpname == NULL)
@@ -949,18 +949,14 @@
 	octstr_destroy(text);
 	octstr_destroy(exec);
 
-	tmp = cfg_get(grp, octstr_imm("keyword"));
-        keyword_regex = cfg_get(grp, octstr_imm("keyword-regex"));
-	if (tmp == NULL && keyword_regex == NULL) {
+    if ((keyword_regex = cfg_get(grp, octstr_imm("keyword-regex"))))
+        octstr_convert_range(keyword_regex, 0, octstr_len(keyword_regex), tolower);
+    else if ((tmp = cfg_get(grp, octstr_imm("keyword"))))
+        octstr_convert_range(tmp, 0, octstr_len(tmp), tolower);
+    else {
 	    error(0, "Group 'sms-service' must include either 'keyword' or 'keyword-regex'.");
 	    goto error;
 	}
-	if (tmp != NULL && keyword_regex != NULL) {
-	    error(0, "Group 'sms-service' may inlcude either 'keyword' or 'keyword-regex'.");
-	    octstr_destroy(tmp);
-	    octstr_destroy(keyword_regex);
-	    goto error;
-	}
 	
 	if (tmp != NULL && octstr_str_compare(tmp, "default") == 0) {
 	    /* default sms-service */
@@ -970,7 +966,6 @@
 	    Octstr *aliases;
 	    
 	    /* convert to regex */
-            octstr_convert_range(tmp, 0, octstr_len(tmp), tolower);
 	    keyword_regex = octstr_format("^[ ]*(%S", tmp);
 	    octstr_destroy(tmp);
 
@@ -1353,11 +1348,12 @@
         if (gw_regex_match_pre(t->keyword_regex, msg) == 1) {
             debug("", 0, "match found: %s", octstr_get_cstr(t->name));
             gwlist_append(list, t);
-        } else {
-            debug("", 0, "no match found: %s", octstr_get_cstr(t->name));
         }
     }
     
+    if (!gwlist_len(list))
+       debug("", 0, "no match found: \"%s\"", octstr_get_cstr(msg));
+    
     return list;
 }
 
