diff --git a/js/fullcalendar.fullcalendar.js b/js/fullcalendar.fullcalendar.js
index 9f67ce8..1790dfc 100644
--- a/js/fullcalendar.fullcalendar.js
+++ b/js/fullcalendar.fullcalendar.js
@@ -48,6 +48,21 @@ Drupal.fullcalendar.processOptions = function(settings, dom_id) {
       if (Drupal.fullcalendar.navigate && settings.ajax) {
         var prev_date, next_date, date_argument, arguments, fetch_url;
 
+        if (!settings.loaded) {
+          $('.fullcalendar', calendar).fullCalendar('changeView', settings.previous_view);
+          $('.fullcalendar', calendar).fullCalendar('gotoDate', settings.previous_date.year, settings.previous_date.month, settings.previous_date.day);
+        }
+
+        current_date =  $('.fullcalendar', calendar).fullCalendar('getDate');
+
+        if (typeof settings.previous_date === 'undefined') {
+          settings.previous_date = {};
+        }
+        settings.previous_date.year = parseInt($.fullCalendar.formatDate(current_date, 'yyyy'));
+        month = parseInt($.fullCalendar.formatDate(current_date, 'M'));
+        settings.previous_date.month = month - 1;
+        settings.previous_date.day = parseInt($.fullCalendar.formatDate(current_date, 'dd'));
+
         prev_date = $.fullCalendar.formatDate(start, 'yyyy-MM-dd');
         next_date = $.fullCalendar.formatDate(end, 'yyyy-MM-dd');
         date_argument = prev_date + '--' + next_date;
diff --git a/js/fullcalendar.views.js b/js/fullcalendar.views.js
index 10f9336..e560b7a 100644
--- a/js/fullcalendar.views.js
+++ b/js/fullcalendar.views.js
@@ -38,8 +38,10 @@ Drupal.behaviors.fullcalendar = {
         }
       }
 
+      settings.fullcalendar[dom_id].loaded = false;
       // Use .once() to protect against extra AJAX calls from Colorbox.
       $('.fullcalendar', calendar).once().fullCalendar(options);
+      settings.fullcalendar[dom_id].loaded = true;
     }
 
     $('.fullcalendar-status-close', calendar).live('click', function() {
@@ -47,6 +49,10 @@ Drupal.behaviors.fullcalendar = {
       return false;
     });
 
+    $('.fullcalendar .fc-button', calendar).live('click', function() {
+      settings.fullcalendar[dom_id].previous_view = $('.fullcalendar', calendar).fullCalendar('getView').name;
+    });
+
     // Trigger a window resize so that calendar will redraw itself.
     $(window).resize();
   }
