--- origviews_service.inc	2009-12-04 20:42:39.000000000 -0500
+++ views_service.inc	2010-01-20 15:39:22.000000000 -0500
@@ -43,7 +43,34 @@ function views_service_get($view_name, $
   if (!$format_output) {
     $view->set_display($display_id);
     $view->execute();
-    $result = $view->result;
+
+    switch($view->base_table) {
+      case 'node':
+        // Get row plugin setting
+        $row_plugin = $view->display[$view->current_display]->display_options['row_plugin'];
+
+        $nodes = array();
+        // If row plugin is node, then we must do a node_load
+        if ($row_plugin == 'node') {
+          foreach ($view->result as $node) {
+            $nodes[] = services_node_load(node_load($node->nid));
+          }
+        }
+        // Otherwise, pass through the fields filter, just in case
+        else {
+          foreach ($view->result as $node) {
+            // @note fields are handled by views itself
+            $nodes[] = services_node_load($node);
+          }
+        }
+        $result = $nodes;
+        break;
+      default:
+        foreach ($view->result as $item) {
+          // @note fields are handled by views itself
+          $result[] = $item;
+        }
+    }
   }
   else {
     // We want to keep the result an array.
