? hook_realname_alter.patch
Index: realname.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/realname/realname.module,v
retrieving revision 1.4.4.57
diff -u -p -r1.4.4.57 realname.module
--- realname.module	13 Oct 2009 17:48:06 -0000	1.4.4.57
+++ realname.module	19 Jan 2010 20:45:58 -0000
@@ -701,7 +701,7 @@ function realname_make_name(&$account) {
 
   $result = _realname_make_name($account);
   if (empty($result)) {
-    return $account->name;
+    return _realname_module_invoke_all($account, $account->name);
   }
   if (!db_result(db_query("SELECT uid FROM {realname} WHERE uid=%d", $account->uid))) { 
     db_query("INSERT INTO {realname} (uid, realname) VALUES(%d, '%s')", $account->uid, $result);
@@ -709,9 +709,9 @@ function realname_make_name(&$account) {
   else {
     db_query("UPDATE {realname} SET realname='%s' where uid=%d", $result,$account->uid);
   }
-  return $result;
-}
 
+  return _realname_module_invoke_all($account, $result);
+}
 /**
  * Helper function for realname_make_name. Using selected fields, build the "real name" field in the object.
  *
@@ -810,6 +810,19 @@ function _realname_make_name(&$account) 
 }
 
 /**
+ * Provides a realname specific module invoke to allow a alter on realname
+ *
+ */
+function _realname_module_invoke_all($account, $realname){
+  $invoke_result = module_invoke_all('realname_alter', $account, $realname);
+  if( count($invoke_result) > 0 ){
+    // handle weighted results here...
+    return $invoke_result[0];
+  }
+  return $realname;
+}
+
+/**
  * Provides array sorting function for uasort.
  *  @link http://us2.php.net/manual/en/function.uasort.php PHP Manual @end-link
  *
Index: realname_handler_field_user_name.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/realname/Attic/realname_handler_field_user_name.inc,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 realname_handler_field_user_name.inc
--- realname_handler_field_user_name.inc	22 Apr 2009 00:44:47 -0000	1.1.2.2
+++ realname_handler_field_user_name.inc	19 Jan 2010 20:45:58 -0000
@@ -31,7 +31,8 @@ class realname_handler_field_user_name e
       }
     }
     // Otherwise, there's no special handling, so return the data directly.
-    return $values->{$this->aliases['realname']};
+    return _realname_module_invoke_all($account, $values->{$this->aliases['realname']});
+
   }
 
 }
Index: realname_theme.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/realname/realname_theme.inc,v
retrieving revision 1.2.4.19
diff -u -p -r1.2.4.19 realname_theme.inc
--- realname_theme.inc	20 Oct 2009 14:27:00 -0000	1.2.4.19
+++ realname_theme.inc	19 Jan 2010 20:45:58 -0000
@@ -57,6 +57,8 @@ function realname_username($object, $opt
       $name = $object->realname;
     }
 
+    $name =  _realname_module_invoke_all($account, $name); 
+
     if (user_access('access user profiles') && !$options['plain']) {
       $l_opts = array('absolute' => TRUE);
       if ($options['levels']) {
