diff --git a/views/views_navigation_plugin_display_extender_views_navigation.inc b/views/views_navigation_plugin_display_extender_views_navigation.inc
index ad1c0ab..e2c4e5c 100644
--- a/views/views_navigation_plugin_display_extender_views_navigation.inc
+++ b/views/views_navigation_plugin_display_extender_views_navigation.inc
@@ -14,6 +14,12 @@ class views_navigation_plugin_display_extender_views_navigation extends views_pl
       'translatable' => FALSE,
       'bool' => TRUE,
     );
+    
+    $options['views_navigation_back'] = array(
+      'default' => FALSE,
+      'translatable' => FALSE,
+      'bool' => TRUE,
+    );
     return $options;
   }
 
@@ -21,6 +27,11 @@ class views_navigation_plugin_display_extender_views_navigation extends views_pl
     switch ($form_state['section']) {
       case 'views_navigation' :
         $form['#title'] .= t('Views navigation');
+        $form['views_navigation_back'] = array(
+          '#type' => 'checkbox',
+          '#title' => t('Add a back link on node pages accessed from this view'),
+          '#default_value' => $this->display->get_option('views_navigation_back'),
+        );
         $form['views_navigation'] = array(
           '#type' => 'checkbox',
           '#title' => t('Add navigation links on node pages accessed from this view'),
@@ -43,6 +54,7 @@ class views_navigation_plugin_display_extender_views_navigation extends views_pl
       case 'views_navigation' :
         $this->display->set_option('views_navigation', $form_state['values']['views_navigation']);
         $this->display->set_option('views_navigation_cycle', $form_state['values']['views_navigation_cycle']);
+        $this->display->set_option('views_navigation_back', $form_state['values']['views_navigation_back']);
         break;
     }
   }
diff --git a/views_navigation.inc b/views_navigation.inc
index d34fffe..4209ec0 100644
--- a/views_navigation.inc
+++ b/views_navigation.inc
@@ -47,7 +47,11 @@ function views_navigation_store_query($view) {
 
   // Store the cycling option value.
   $view_to_store->cycle = $view->display_handler->get_option('views_navigation_cycle');
-
+  $view_to_store->back = $view->display_handler->get_option('views_navigation_back');
+  if($view_to_store->back){
+    $query_to_store->destination = reset(drupal_get_destination());
+  }
+  
   // Remove useless properties. This is the not easy part.
   unset($query_to_store->display);
   unset($query_to_store->header);
@@ -59,6 +63,8 @@ function views_navigation_store_query($view) {
       'name',
       'total_rows',
       'cycle',
+      'back',
+      'destination',
     ))) {
       unset($view_to_store->$key);
     }
@@ -85,6 +91,14 @@ function views_navigation_get_query_cid($query) {
  * Redirect to the next or previous node.
  */
 function views_navigation_router($cid, $pos) {
+  if($pos == 'back'){
+    if ($query = views_navigation_get_cached_query($cid)) {
+      if(isset($query->destination)){
+        drupal_goto($query->destination);
+      }
+    }
+  }
+  
   if ($result = views_navigation_get_result($cid)) {
     // Manage array ends, cycling behavior.
     $max_index = count($result) - 1;
@@ -149,6 +163,13 @@ function views_navigation_get_links($view_mode = 'full') {
       'href' => 'views_navigation/' . $cid . '/' . ($pos + 1),
     );
   }
+  
+  if ($query->view->back) {
+    $links['back'] = array(
+      'title' => t('back'),
+      'href' => 'views_navigation/' . $cid . '/back',
+    );
+  }
 
   return array(
     '#theme' => 'links',
