diff --git a/flippy.module b/flippy.module
index 8bdcdfa..07ad8b6 100644
--- a/flippy.module
+++ b/flippy.module
@@ -86,23 +86,23 @@ function flippy_node_view($node, $view_mode = 'full') {
     
     if (node_is_page($node) && variable_get('flippy_head_'. $node->type, NULL)) {
       $links = flippy_build_list($node);
-      if (!empty($links['prev'])) {
+      if (!empty($links['prev']['nid'])) {
         drupal_add_html_head_link(array(
           'rel' => 'prev',
-          'href' => url('node/' . $links['prev']),
+          'href' => url('node/' . $links['prev']['nid']),
         ));
       }
-      if (!empty($links['next'])) {
+      if (!empty($links['next']['nid'])) {
         drupal_add_html_head_link(array(
           'rel' => 'next',
-          'href' => url('node/' . $links['next']),
+          'href' => url('node/' . $links['next']['nid']),
         ));
       }
     }
   }
 }
 
-function flippy_preprocess_node($vars) {
+function flippy_preprocess_node(&$vars) {
   $node = $vars['node'];
   if (node_is_page($node) && ($pager = variable_get('flippy_'. $node->type, NULL))) {
     $vars['flippy']['ids'] = flippy_build_list($node);
@@ -117,8 +117,9 @@ function flippy_build_list($node) {
   if (!isset($master_list[$node->nid])) {
     // Create a starting-point query object
     $query = db_select('node')
-      ->fields('node', array('nid'))
+      ->fields('node', array('nid', 'title'))
       ->condition('nid', $node->nid, '!=')
+      ->condition('status', 1)
       ->condition('type', $node->type, '=')
       ->range(0, 1);
 
@@ -126,7 +127,7 @@ function flippy_build_list($node) {
     $list['first'] = $first
       ->condition('created', $node->created, '<=')
       ->orderBy('created', 'ASC')
-      ->execute()->fetchField();
+      ->execute()->fetchAssoc();
 
     $list['current'] = $node->nid;
 
@@ -134,19 +135,19 @@ function flippy_build_list($node) {
     $list['prev'] = $prev
       ->condition('created', $node->created, '<=')
       ->orderBy('created', 'DESC')
-      ->execute()->fetchField();
+      ->execute()->fetchAssoc();
 
     $next = clone $query;
     $list['next'] = $next
       ->condition('created', $node->created, '>=')
       ->orderBy('created', 'ASC')
-      ->execute()->fetchField();
+      ->execute()->fetchAssoc();
 
     $last = clone $query;
     $list['last'] = $last
       ->condition('created', $node->created, '>=')
       ->orderBy('created', 'DESC')
-      ->execute()->fetchField();
+      ->execute()->fetchAssoc();
     
     $master_list[$node->nid] = $list;
   }
@@ -162,12 +163,15 @@ function _flippy_nids_to_nodes(array $pager) {
   return $pager;
 }
 
-function template_preprocess_flippy($vars) {
+function template_preprocess_flippy(&$vars) {
   drupal_add_css(drupal_get_path('module', 'flippy') . '/flippy.css');
+
   if ($nav = $vars['list']) {
-    $vars['first_link'] = empty($nav['first']) ? '' : l('‹ ' . t('first'), 'node/' . $nav['first']);
-    $vars['previous_link'] =  empty($nav['prev']) ? '' : l('‹ ' . t('previous'), 'node/' . $nav['prev']);
-    $vars['next_link'] =  empty($nav['next']) ? '' : l(t('next') . ' ›', 'node/' . $nav['next']);
-    $vars['last_link'] =  empty($nav['last']) ? '' : l(t('latest') . ' ›', 'node/' . $nav['last']);
+    $vars['first_link'] = empty($nav['first']['nid']) ? '' : l('‹ ' . t('first'), 'node/' . $nav['first']['nid']);
+    $vars['previous_link'] =  empty($nav['prev']['nid']) ? '' : l('‹ ' . t('previous'), 'node/' . $nav['prev']['nid']);
+    $vars['next_link'] =  empty($nav['next']['nid']) ? '' : l(t('next') . ' ›', 'node/' . $nav['next']['nid']);
+    $vars['last_link'] =  empty($nav['last']['nid']) ? '' : l(t('latest') . ' ›', 'node/' . $nav['last']['nid']);
   }
-}
\ No newline at end of file
+  $vars = array_merge($vars, $vars['list']);
+  unset($vars['list']);
+}
diff --git a/flippy.tpl.php b/flippy.tpl.php
index 29bdc45..84c7c68 100644
--- a/flippy.tpl.php
+++ b/flippy.tpl.php
@@ -12,14 +12,14 @@
  * - $next_link: A formatted <A> link to the next item.
  * - $last_link: A formatted <A> link to the last item.
  *
- * Other variables:
- * - $current: The Node ID of the current node.
- * - $first: The Node ID of the first node.
- * - $prev: The Node ID of the previous node.
- * - $next: The Node ID of the next node.
- * - $last: The Node ID of the last node.
+ * Other variables: arrays with keys: 'nid', 'title' 
+ * - $current: The Node ID & Title of the current node.
+ * - $first: The Node ID & Title of the first node.
+ * - $prev: The Node ID & Title of the previous node.
+ * - $next: The Node ID & Title of the next node.
+ * - $last: The Node ID & Title of the last node.
  *
- * @see flippy_preprocess_custom_pager()
+ * @see template_preprocess_flippy()
  */
 ?>
 <ul class="flippy">
