Index: modules/qbwc/qbwc.inc
=========================================================
--- modules/qbwc/qbwc.inc	(revision 1.8)
+++ modules/qbwc/qbwc.inc	Working Copy
@@ -131,17 +131,17 @@
     return (object) array( 'closeConnectionResult' => t('Session closed'));
   }

-  function connectionError($ticket, $hresult, $message) {
+  function connectionError() {
+    $args = func_get_args();
     // Do not try to reconnect
-    return 'done';
+    return (object) array('connectionErrorResult' => 'done');
   }

   function getLastError($ticket) {
-    $errors = array();
     foreach (qbwc_error() as $error) {
     }

-    return (object) array('getLastErrorResponse' => $errors);
+    return (object) array('getLastErrorResponse' => $error);
   }

   function serverVersion($ticket) {
@@ -219,16 +220,19 @@
         $request = $requests[$request_id];

         if ($request_status) {
-          watchdog('qbwc', '@err: @msg returned for @req request', array('@err' => $request_status, '@msg' => $request_message, '@req' => $request['name']));
+          watchdog('qbwc', '@err: "@msg" returned for @req request', array('@err' => $request_status, '@msg' => $request_message, '@req' => $request['name']));
         }
-
+
         $result = array();
         foreach ($element->childNodes as $r) {
-          if (get_class($r) == 'DOMElement') $result[] = qb_array($r);
+          if (get_class($r) == 'DOMElement') {
+            $result[] = qb_array($r);
+          }
         }

         // This is a multiple-result response, such as a query of items.
         if ($element->hasAttribute('retCount')) {
+          $result['_retCount'] = $element->getAttribute('retCount');
           if ($element->getAttribute('iteratorRemainingCount')) {
             // The result set is incomplete: re-submit it to the queue.
             qbwc_request_queue($request);
