--- a/libupnpp/soaphelp.cxx
+++ b/libupnpp/soaphelp.cxx
@@ -43,19 +43,28 @@
         cerr << "decodeSoap: Empty Action request (no topNode) ??" << endl;
         return false;
     }
-    //cerr << "decodeSoap: top node name: " << ixmlNode_getNodeName(topNode) 
-    //<< endl;
+    // cerr << "decodeSoap: top node name: " << ixmlNode_getNodeName(topNode) 
+    // << endl;
 
     nl = ixmlNode_getChildNodes(topNode);
     if (nl == 0) {
-        cerr << "decodeSoap: empty Action request (no childs) ??" << endl;
+        // cerr << "decodeSoap: empty Action request (no childs)" << endl;
         // Ok actually, there are no args
         return true;
     }
+    // cerr << "decodeSoap: childnodes list length: " << ixmlNodeList_length(nl)
+    // << endl;
+
     for (unsigned long i = 0; i <  ixmlNodeList_length(nl); i++) {
         IXML_Node *cld = ixmlNodeList_item(nl, i);
         if (cld == 0) {
-            cerr << "decodeSoap: got null node  from nodelist??" << endl;
+            // cerr << "decodeSoap: got null node  from nodelist at index " <<
+            // i << " ??" << endl;
+            // Seems to happen with empty arg list?? This looks like a bug, 
+            // should we not get an empty node instead?
+            if (i == 0) {
+                ret = true;
+            }
             goto out;
         }
         const char *name = ixmlNode_getNodeName(cld);