Index: includes/nodereference_explorer.widget.inc
===================================================================
--- includes/nodereference_explorer.widget.inc	(revision 3418)
+++ includes/nodereference_explorer.widget.inc	(working copy)
@@ -97,7 +97,7 @@
     }
   
     //call parent widget process function, provided by plugin (depends on CCK type)
-    $element = $element['#plugin']->widget_process($element, $edit, $form_state, $form);
+    $element = $element['#plugin']->widget_process($element, $edit, $form_state, $form);    
 
     //add js settings per field only once, preventing multiple settings holds same values
     //this is compatible with the "add more" behavior
@@ -133,7 +133,7 @@
     //add a preview if enabled (by the content type admin/editor)
     if (!empty($field['widget']['content_preview']) && $field['widget']['content_preview'] != '--') {
       $preview_weight = $field['widget']['content_preview_position'] == 'below' ?  1 : -1;
-      $preview_id = nodereference_explorer_widget_preview($element, $preview_weight);
+      $preview_id = nodereference_explorer_widget_preview($element, $field, $preview_weight);
       $components[] = $preview_id; //add preview to components
     }
 
@@ -250,21 +250,36 @@
  *   form element
  * @param $field
  *   CCK field
+ * @param $preview_weight
+ *   number form position
  * @return
  *   id of the preview area
  */
-function nodereference_explorer_widget_preview(&$element, $preview_weight) {
+function nodereference_explorer_widget_preview(&$element, $field, $preview_weight) {
 
   $element['preview'] = array(
     '#type' => 'markup',
     '#weight' => $preview_weight,
   );
 
-  $preview_id = $element['#id'] .'-preview';
-
-  //add an empty placeholder for the preview
-  $element['preview']['#value'] = '<div id="'. $preview_id .'" class="nodereference-explorer-preview"></div>';
+  $preview_id = $element['#id'] .'-preview'; // HTML id
+  // wrapper
+  $prefix = '<div id="'. $preview_id .'" class="nodereference-explorer-preview">';
+  $suffix = '</div>';
 
+  if ($element['#default_value']['nid']) { // load preview if value is provided
+    nodereference_explorer_include('nodereference_explorer.views.class');
+    $handler = new nodereference_explorer_views($field);
+    $output = $handler->get_item($element['#default_value']['nid']); // generates HTML preview
+    //wrap output
+    $element['preview']['#prefix'] = $prefix;
+    $element['preview']['#suffix'] = $suffix;
+    $element['preview']['#value'] = $output;
+  }
+  else { //add an empty placeholder for the preview
+    $element['preview']['#value'] = $prefix . $suffix;
+  }
+   
   nodereference_explorer_add_js('explorer.preview'); //preview behavior js
   return $preview_id;
 }
Index: plugins/content/link/nodereference_explorer_plugin_content_link.inc
===================================================================
--- plugins/content/link/nodereference_explorer_plugin_content_link.inc	(revision 3418)
+++ plugins/content/link/nodereference_explorer_plugin_content_link.inc	(working copy)
@@ -23,17 +23,20 @@
     $element = link_process($element, $edit, $form_state, $form);
     if (isset($element['#default_value']['title']))
       $node = node_load(array('title' => $element['#default_value']['title']));
-    $element['value'] = array(
-      '#id' => $element['#id'],
-      '#type' => 'hidden',
-      '#value' => !empty($element['#default_value']['title']) && !empty($node->nid) ? $element['#default_value']['title'] . '[nid: ' . $node->nid .']': '',
-    );
+      $element['value'] = array(
+        '#id' => $element['#id'],
+        '#type' => 'hidden',
+        '#value' => !empty($element['#default_value']['title']) && !empty($node->nid) ? $element['#default_value']['title'] . '[nid: ' . $node->nid .']': '',
+      );
+      if ($node->nid) {
+        $element['#default_value']['nid'] = $node->nid;
+      }
     //create an error element, needed for storing field name for widget settings form and
     //validates widget settings properly
     $field_key  = $element['#columns'][0];
     $element['_error_element'] = array(
       '#type' => 'value',
-      // Wrapping the element around a text_textfield element creates a
+      // Wrapping the element around a text_textfield element creates aS
       // nested element, so the final id will look like 'field-name-0-url'.
       '#value' => implode('][', array_merge($element['#parents'], array($field_key))),
     );
Index: js/explorer.preview.js
===================================================================
--- js/explorer.preview.js	(revision 3418)
+++ js/explorer.preview.js	(working copy)
@@ -25,12 +25,14 @@
       var path = settings['preview'];
       var widget = '#' + settings['widget'];
       
-      //attach change action to core widget, triggered when dialog returns a value
-      //when loading an editing node with nodereference fields
-      //  when loading a selection from a autocomplete view selection
+      // Attach change action to core widget, triggered when dialog returns a value
+      // - when loading an editing node with nodereference fields
+      // - when loading a selection from a autocomplete view selection
+      // On first load the preview is generated server side, so there's no
+      // manual trigger, i. e. $(widget).blur() necessary
       $(widget).blur(function(event) {
     	var val = $(this).val(); //current value
-    	if (val != '') {//placeholder while preview loads
+    	if (val != '') { // placeholder while preview loads
     	  $(preview).text(Drupal.t('Preview loading, please wait...'));
           Drupal.nodereference_explorer.preview.getPreview(preview, path, val);
     	}
@@ -38,7 +40,6 @@
     	  $(preview).text('');
     	}
       });
-      $(widget).blur();
     })
     .addClass('nodereference-explorer-processed');
 };
