diff --git realname.admin.inc realname.admin.inc
index 609d69c..ac01b13 100644
--- realname.admin.inc
+++ realname.admin.inc
@@ -27,6 +27,13 @@ function realname_admin_general() {
     '#default_value' => variable_get('realname_nodeapi', FALSE),
   );
 
+  $form['realname_nodeform'] = array(
+    '#type' => 'checkbox',
+    '#title' => '<strong>'. t('Use realname in node forms') .'</strong>',
+    '#description' => t('If this option is selected, the "Real name" will be used on node forms.'),
+    '#default_value' => variable_get('realname_nodeform', FALSE),
+  );
+
   if (variable_get('realname_profile_module', NULL) == 'content_profile') {
     $form['realname_use_title'] = array(
       '#type' => 'checkbox',
@@ -138,6 +145,7 @@ function realname_admin_general_validate($form, &$form_state) {
 
 function realname_admin_general_submit($form, &$form_state) {
   variable_set('realname_nodeapi', $form_state['values']['realname_nodeapi']);
+  variable_set('realname_nodeform', $form_state['values']['realname_nodeform']);
   variable_set('realname_myacct', $form_state['values']['realname_myacct']);
   variable_set('realname_search_enable', $form_state['values']['realname_search_enable']);
   variable_set('realname_user_disable', $form_state['values']['realname_user_disable']);
diff --git realname.module realname.module
index fd41513..77464b7 100644
--- realname.module
+++ realname.module
@@ -170,6 +170,15 @@ function realname_menu() {
     );
   }
 
+  // alter realname the node edit form autocomplete
+  $items['realname/autocomplete'] = array(
+    'title' => 'Realname autocomplete',
+    'page callback' => 'realname_user_autocomplete',
+    'access callback' => 'user_access',
+    'access arguments' => array('access user profiles'),
+    'type' => MENU_CALLBACK,
+  );
+
   return $items;
 }
 
@@ -614,7 +623,16 @@ function realname_form_alter(&$form, $form_state, $form_id) {
     case 'privatemsg_new':
       $form['privatemsg']['recipient']['#autocomplete_path'] = 'realname/privatemsg/autocomplete';
       break;
+
   }
+  if (isset($form['#id']) && $form['#id'] == 'node-form' && isset($form['author']) && variable_get('realname_nodeform', FALSE)) {
+    $account = user_load($form['uid']['#value']);
+    $form['author']['name']['#default_value'] = _realname_make_name($account) . ' [' . t('Username') . ':' . $account->name . ']';
+    $form['author']['name']['#autocomplete_path'] = 'realname/autocomplete';
+    $form['author']['name']['#maxlength'] = 120;
+    array_unshift($form['#validate'], 'realname_node_form_validate');
+  }
+
 }
 
 /**
@@ -733,6 +751,30 @@ function realname_privatemsg_autocomplete($string) {
   }
 }
 
+
+
+/**
+ * Menu callback; Retrieve a JSON object containing autocomplete suggestions for existing users.
+ */
+function realname_user_autocomplete($string = '') {
+  $matches = array();
+  if ($string) {
+    $result = db_query_range("SELECT u.uid, u.name, r.realname FROM {users} u INNER JOIN {realname} r USING(uid) WHERE LOWER(r.realname) LIKE LOWER('%s%%')", $string, 0, 10);
+    while ($user = db_fetch_object($result)) {
+      $safe_user_name = check_plain($user->name);
+      $safe_user_real_name = check_plain($user->realname);
+      $matches[$safe_user_real_name . ' [' . t('Username') . ':' . $safe_user_name . ']'] = $safe_user_real_name;
+    }
+  }
+  drupal_json($matches);
+}
+
+function realname_node_form_validate($form, &$form_state) {
+    //Update the form's "authored by" value
+    $username = substr(strstr($form_state['values']['name'], ':'), 1, -1);
+    form_set_value($form['author']['name'], $username, $form_state);
+}
+
 //********************************************************************
 //* Module Functions
 //********************************************************************
