--- noderefcreate.module	2009-07-03 02:21:23.000000000 -0600
+++ noderefcreatePatch.module	2010-06-16 02:01:53.359752553 -0600
@@ -104,17 +104,17 @@ function noderefcreate_autocomplete_vali
   $nid = NULL;
   if (!empty($value)) {
     preg_match('/^(?:\s*|(.*) )?\[\s*nid\s*:\s*(\d+)\s*\]$/', $value, $matches);
-    if (!empty($matches)) {
+    preg_match('/^(?:\s*|(.*) )?\[\s*new\s*\]$/', $value, $new);
+    if (!empty($matches) && empty($new)) {
       // Explicit [nid:n].
       list(, $title, $nid) = $matches;
       if (!empty($title) && ($n = node_load($nid)) && $title != $n->title) {
         form_error($element[$field_key], t('%name: title mismatch. Please check your selection.', array('%name' => t($field['widget']['label']))));
       }
-    }
-    else {
+    }else {
       // No explicit nid.
       $reference = _nodereference_potential_references($field, $value, 'equals', NULL, 1);
-      if (empty($reference)) {
+      if (empty($reference) || !empty($new)) {
         $newnode = NULL;
         if (is_array($field['referenceable_types'])) {
           foreach (array_filter($field['referenceable_types']) as $related_type) {
@@ -123,6 +123,11 @@ function noderefcreate_autocomplete_vali
         }
         global $user;
         $newnode->uid = $user->uid;
+        
+        // Strip [new] from the title
+        if(!empty($new)){
+          $value = trim(str_replace("[new]","",$value));
+        }
         $newnode->title = $value;
         node_save($newnode);
         $nid = $newnode->nid;
