diff --git a/js/jcarousel.js b/js/jcarousel.js
index fd5e1b2..3c946f0 100644
--- a/js/jcarousel.js
+++ b/js/jcarousel.js
@@ -71,8 +71,12 @@ Drupal.jcarousel.ajaxLoadCallback = function(jcarousel, state) {
     }
   });
 
+  // Convert first and last positions to positive numbers.
+  var first = (jcarousel.first < 0) ? jcarousel.first + jcarousel.options.size : jcarousel.first;
+  var last = (jcarousel.first < 0 && jcarousel.last <= 0) ? jcarousel.last + jcarousel.options.size : jcarousel.last;
+
   // Copied from ajax_view.js:
-  var viewData = { 'js': 1, 'first': jcarousel.first - 1, 'last': jcarousel.last };
+  var viewData = { 'js': 1, 'first': first - 1, 'last': last };
   // Construct an object using the settings defaults and then overriding
   // with data specific to the link.
   $.extend(
