diff --git a/css/fullcalendar.theme.css b/css/fullcalendar.theme.css
index 6d508ef..7121318 100644
--- a/css/fullcalendar.theme.css
+++ b/css/fullcalendar.theme.css
@@ -61,6 +61,31 @@ table.fc-header {
   border: 0;
 }
 
+.fc-header .pager {
+  margin: 0;
+  padding: 0;
+  width: 150%;
+}
+
+.fc-header .pager li {
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
+  float: left;
+  list-style-type: none;
+  padding: 0;
+  width: 50%;
+}
+
+.fc-header .pager li .ajax-progress-throbber {
+  display: none;
+}
+
+.fc-header .pager li a {
+  display: block;
+  padding: 4px 6px;
+}
+
 .fc-header .fc-state-default,
 .fc-header .ui-state-default {
   margin-bottom: 0;
diff --git a/js/fullcalendar.views.js b/js/fullcalendar.views.js
index a77c199..250afe6 100644
--- a/js/fullcalendar.views.js
+++ b/js/fullcalendar.views.js
@@ -113,6 +113,18 @@ Drupal.behaviors.fullCalendar = {
           return false;
         }
       });
+      if ($(index).find('.item-list').length) {
+        // Replace the default next/previous buttons with our pager.
+        $(index + ' .fc-header').find('.fc-button-prev')
+          .replaceWith($(index).find('.item-list').hide().html())
+        .end().find('.fc-button-next')
+          .remove()
+        .end().find('a[href]').parent().hover(
+          function () {
+            $(this).toggleClass('ui-state-hover');
+          }
+        );
+      }
     });
 
     var fullcalendarUpdate = function(result) {
diff --git a/theme/theme.inc b/theme/theme.inc
index 10a559f..79ee16e 100644
--- a/theme/theme.inc
+++ b/theme/theme.inc
@@ -105,15 +105,42 @@ function template_preprocess_fullcalendar_fields(&$vars) {
 function theme_fullcalendar_pager(&$vars) {
   $plugin = $vars['plugin'];
 
-  $items[] = fullcalendar_link_render($vars['input'], $plugin->year, $plugin->month - 1, t('‹ %date'), t('Go to the previous month.'));
-  $items[] = fullcalendar_link_render($vars['input'], $plugin->year, $plugin->month + 1, t('%date ›'), t('Go to the next month.'));
+  $items[] = array(
+    'class' => array(
+      'fc-button-prev',
+      'ui-state-default',
+      'ui-corner-left',
+      'ui-no-right'
+    ),
+    'data' => fullcalendar_link_render(
+      $vars['input'],
+      $plugin->year,
+      $plugin->month - 1,
+      '<span class="ui-icon ui-icon-circle-triangle-w"></span>',
+      t('Go to the previous month.')
+    )
+  );
+  $items[] = array(
+    'class' => array(
+      'fc-button-prev',
+      'ui-state-default',
+      'ui-corner-right',
+    ),
+    'data' => fullcalendar_link_render(
+      $vars['input'],
+      $plugin->year,
+      $plugin->month + 1,
+      '<span class="ui-icon ui-icon-circle-triangle-e"></span>',
+      t('Go to the next month.')
+    )
+  );
 
   return theme('item_list',
     array(
       'items' => $items,
       'title' => NULL,
       'type' => 'ul',
-      'attributes' => array('class' => array('pager')),
+      'attributes' => array('class' => array('pager', 'clearfix')),
     )
   );
 }
@@ -129,10 +156,6 @@ function fullcalendar_link_render($input, $year, $month, $text, $title) {
     $month = 12;
   }
 
-  $time = mktime(0, 0, 0, $month, 1, $year);
-  $date = format_date($time, 'custom', 'M Y', NULL);
-  $text = str_replace('%date', $date, $text);
-
   // Set the year and month into the parameters:
   $input['year'] = $year;
   $input['month'] = $month;
@@ -142,5 +165,5 @@ function fullcalendar_link_render($input, $year, $month, $text, $title) {
     'title' => $title,
   );
 
-  return l($text, $_GET['q'], array('attributes' => $attributes, 'query' => $input));
+  return l($text, $_GET['q'], array('attributes' => $attributes, 'query' => $input, 'html' => TRUE));
 }
