--- modal_noderef.module
+++ modal_noderef.module	(working)
@@ -35,7 +35,10 @@ function modal_noderef_form_alter(&$form
       $form['#submit'][] = '_modal_noderef_modal_submit';
     }
     else {
-      _modal_noderef_add_link($form, $form['type']['#value']);
+      if (!isset($form['#after_build'])) {
+        $form['#after_build'] = array();
+      }
+      $form['#after_build'][] = 'modal_noderef_add_link_form_after_build';
     }
   }
 }
@@ -63,6 +66,12 @@ function modal_noderef_nodeapi(&$node, $
   }
 }
 
+function modal_noderef_add_link_form_after_build($form, &$form_state) {
+   _modal_noderef_add_link($form, $form['type']['#value']);
+   return $form;
+}
+
+
 /**
  * Add modal link.
  *
@@ -79,8 +88,8 @@ function _modal_noderef_add_link(&$form,
   $all_node_types = node_get_types();
   foreach ($form as $k => $item) {
     if (is_array($item)) {
-      // Recurse into fieldsets.
-      if ($item['#type'] == 'fieldset') {
+      // Recurse into fieldsets and other items
+      if ($item['#type'] == 'fieldset' || ($item['#type']==NULL && $item['#tree'] == TRUE)) {
         _modal_noderef_add_link($form[$k], $node_type);
       }
       // Check to see if this is a nodereference with an add link.
