--- nodereferrer_create.module.old	2010-03-31 16:04:30.000000000 +0000
+++ nodereferrer_create.module	2010-03-31 17:31:41.000000000 +0000
@@ -119,6 +119,10 @@ function _nodereferrer_create_nodeapi_vi
  */
 function _nodereferrer_create_nodeapi_view_referrer(&$node, $teaser, $page) {
   $menu_items = array();
+  $destination = array();
+  if (variable_get('nodereferrer_redirect_after_create', 0)) {
+    $destination = array('query' => array('destination' => 'node/' . $node->nid));
+  }
   foreach($node->referrers as $i => $ref) {
     $items = array();
     
@@ -128,12 +132,12 @@ function _nodereferrer_create_nodeapi_vi
         $text = t(variable_get('nodereferrer_create_label', 'Create new @type'),
           array('@type' => $type_info['name']));
         $url = 'node/'.$node->nid.'/create_referrer/'.$i.'/'.$type.'/0';
-        $items[] = l($text, $url);
+        $items[] = l($text, $url, $destination);
         if ($nf[0]['multiple'] == 1) {
           $text = t(variable_get('nodereferrer_create_add_label', 'Add to existing @type'),
             array('@type' => $type_info['name']));
           $url = 'node/'.$node->nid.'/add_referrer/'.$i.'/'.$type.'/0';
-          $items[] = l($text, $url);
+          $items[] = l($text, $url, $destination);
         }
       } else {
         foreach($nf as $nfr_index => $nfr) {
@@ -141,12 +145,12 @@ function _nodereferrer_create_nodeapi_vi
           $text = t(variable_get('nodereferrer_create_label', 'Create new @type'),
             array('@type' => $nfr_name));
           $url = 'node/'.$node->nid.'/create_referrer/'.$i.'/'.$type.'/'.$nfr_index;
-          $items[] = l($text, $url);
+          $items[] = l($text, $url, $destination);
           if ($nf[0]['multiple'] == 1) {
             $text = t(variable_get('nodereferrer_create_add_label', 'Add to existing @type'),
               array('@type' => $nfr_name));
             $url = 'node/'.$node->nid.'/add_referrer/'.$i.'/'.$type.'/'.$nfr_index;
-            $items[] = l($text, $url);
+            $items[] = l($text, $url, $destination);
           }
         }
       }
@@ -193,7 +197,10 @@ function _nodereferrer_create_nodeapi_vi
  */
 function _nodereferrer_create_nodeapi_view_reference(&$node, $teaser, $page) {
   $menu_items = array();
-  
+  $destination = array();
+  if (variable_get('nodereferrer_redirect_after_create', 0)) {
+    $destination = array('query' => array('destination' => 'node/' . $node->nid));
+  }
   foreach($node->reference_fields as $i => $ref) {
     $multiple = $ref['multiple'] == 1;
     $items = array();
@@ -205,25 +212,25 @@ function _nodereferrer_create_nodeapi_vi
           $text = t(variable_get('nodereferrer_create_reference_label', 'Create new @type'),
             array('@type' => $type_info['name']));
           $url = 'node/'.$node->nid.'/create_reference/'.$i.'/'.$referenceable_type;
-          $items[] = l($text, $url);
+          $items[] = l($text, $url, $destination);
         }
         
         $text = t(variable_get('nodereferrer_create_reference_label_add', 'Add existing @type'),
           array('@type' => $type_info['name']));
         $url = 'node/'.$node->nid.'/add_reference/'.$i.'/'.$referenceable_type;
-        $items[] = l($text, $url);
+        $items[] = l($text, $url, $destination);
       } else {
         if (node_access('create', $referenceable_type)) {
           $text = t(variable_get('nodereferrer_create_reference_label_single', 'Replace with new @type'),
             array('@type' => $type_info['name']));
           $url = 'node/'.$node->nid.'/create_reference/'.$i.'/'.$referenceable_type;
-          $items[] = l($text, $url);
+          $items[] = l($text, $url, $destination);
         }
         
         $text = t(variable_get('nodereferrer_create_reference_label_add_single', 'Replace with existing @type'),
           array('@type' => $type_info['name']));
         $url = 'node/'.$node->nid.'/add_reference/'.$i.'/'.$referenceable_type;
-        $items[] = l($text, $url);
+        $items[] = l($text, $url, $destination);
       }
     }
     
