diff -up old/nodereference.module new/nodereference.module
--- old/nodereference.module	2008-11-05 21:40:20.000000000 +0200
+++ new/nodereference.module	2008-11-18 15:27:26.468750000 +0200
@@ -113,6 +113,29 @@ function nodereference_field_settings($o
             '#required' => FALSE,
             '#description' => t('Provide a comma separated list of arguments to pass to the view.'),
           );
+	   $form['advanced']['code'] = array(
+            '#type' => 'fieldset',
+            '#title' => t('PHP code'),
+            '#collapsible' => TRUE,
+            '#collapsed' => empty($field['advanced_view_args_php']),
+          );
+          if (user_access('Use PHP input for field settings (dangerous - grant with care)')) {
+            $form['advanced']['code']['advanced_view_args_php'] = array(
+              '#type' => 'textarea',
+              '#title' => t('Code'),
+              '#default_value' => !empty($field['advanced_view_args_php']) ? $field['advanced_view_args_php'] : '',
+              '#rows' => 6,
+              '#description' => t('Advanced Usage Only: PHP code that returns a keyed array of view arguments. Should not include &lt;?php ?&gt; delimiters. If this field is filled out, the array returned by this code will override the view arguments above.'),
+            );
+          }
+          else {
+            $form['advanced']['code']['markup_advanced_view_args_php'] = array(
+              '#type' => 'item',
+              '#title' => t('Code'),
+              '#value' => !empty($field['advanced_view_args_php']) ? '<code>'. check_plain($field['advanced_view_args_php']) .'</code>' : t('&lt;none&gt;'),
+              '#description' => empty($field['advanced_view_args_php']) ? t("You're not allowed to input PHP code.") : t('This PHP code was set by an administrator and will override the allowed values list above.'),
+            );
+          }
         }
       }
       return $form;
@@ -122,6 +145,7 @@ function nodereference_field_settings($o
       if (module_exists('views')) {
         $settings[] = 'advanced_view';
         $settings[] = 'advanced_view_args';
+	 $settings[] = 'advanced_view_args_php';
       }
       return $settings;
 
@@ -778,13 +802,18 @@ function _nodereference_potential_refere
     }
 
     // Get arguments for the view.
-    if (!empty($field['advanced_view_args'])) {
+    if (!empty($field['advanced_view_args_php'])) {
+      ob_start();
+      $view_args = eval($field['advanced_view_args_php']);
+      ob_end_clean();
+    }
+    elseif (!empty($field['advanced_view_args'])) {
       // TODO: Support Tokens using token.module ?
       $view_args = array_map('trim', explode(',', $field['advanced_view_args']));
     }
-    else {
-      $view_args = array();
-    }
+    else {
+      $view_args = array();
+    }
 
     // We do need title field, so add it if not present (unlikely, but...)
     $fields = $view->get_items('field', $display);
