--- services/views_service/views_service.inc	2010-02-19 23:13:29.000000000 -0600
+++ services/views_service/views_service.inc.new	2010-03-19 16:49:54.000000000 -0500
@@ -27,21 +27,25 @@
 function views_service_get($view_name, $display_id = 'default', $args = array(), $offset = 0, $limit = 0, $format_output = FALSE) {
   $result = array();
   $view = views_get_view($view_name);
+  $view->set_display($display_id);
 
   // Put all arguments and then execute.
   $view->set_arguments($args, FALSE);
   $view->set_offset($offset);
+
+  if($limit) $view->set_items_per_page($limit);
+  else $view->set_items_per_page($view->display_handler->get_option('items_per_page'));
+  
   // If offset is set we can't have a user pager.
   if (empty($offset)) {
     $view->set_use_pager(TRUE);
-    $view->set_items_per_page($limit);
   }
   else {
     // Disable the user pager.
     $view->set_use_pager(FALSE);
   }
+  
   if (!$format_output) {
-    $view->set_display($display_id);
     $view->execute();
     $result = $view->result;
 
@@ -57,7 +61,7 @@ function views_service_get($view_name, $
   }
   else {
     // We want to keep the result an array.
-    $result[] = $view->preview($display_id);
+    $result[] = $view->render();
   }
   return $result;
 }
