diff U3wi \pathauto-6.x-1.1\pathauto\pathauto.module \pathauto-6.x-1.1-new\pathauto\pathauto.module
--- \pathauto-6.x-1.1\pathauto\pathauto.module	Fri Jun 20 20:01:02 2008
+++ \pathauto-6.x-1.1-new\pathauto\pathauto.module	Tue Feb 10 16:10:18 2009
@@ -416 +416 @@
           $src = 'user/'. $user->uid .'/track';
           $alias = pathauto_create_alias('tracker', $op, $placeholders, $src, $user->uid);
         }
+        if (module_exists('contact')) {
+          $src = 'user/'. $user->uid .'/contact';
+          $alias = pathauto_create_alias('contact', $op, $placeholders, $src, $user->uid);
+        }
       }
       break;
     case 'delete':
@@ -428,6 +432,7 @@
       path_set_alias('blog/'. $user->uid .'/feed');
       path_set_alias('user/'. $user->uid .'/track');
       path_set_alias('user/'. $user->uid .'/track/feed');
+      path_set_alias('user/'. $user->uid .'/contact');
       break;
     default:
       break;
========================================================================
diff U3wi \pathauto-6.x-1.1\pathauto\pathauto_user.inc \pathauto-6.x-1.1-new\pathauto\pathauto_user.inc
--- \pathauto-6.x-1.1\pathauto\pathauto_user.inc  Fri Jun 20 20:01:02 2008
+++ \pathauto-6.x-1.1-new\pathauto\pathauto_user.inc  Tue Feb 10 16:10:18 2009
@@ -87 +87 @@ 
   }
 }

+  /**
+   * Implementation of hook_pathauto() for user contact aliases.
+   */
+  function contact_pathauto($op) {
+    switch ($op) {
+      case 'settings':
+        $settings = array();
+        $settings['module'] = 'contact';
+        $settings['token_type'] = 'user';
+        $settings['groupheader'] = t('User contact path settings');
+        $settings['patterndescr'] = t('Pattern for user contact page paths');
+        $settings['patterndefault'] = t('users/[user-raw]/contact');
+        $patterns = token_get_list('user');
+        foreach ($patterns['user'] as $pattern => $description) {
+          $settings['placeholders']['['. $pattern .']'] = $description;
+        }
+        $settings['bulkname'] = t('Bulk generate aliases for user contact paths that are not aliased');
+        $settings['bulkdescr'] = t('Generate aliases for all existing user contact pages which do not already have aliases.');
+        return (object) $settings;
+      default:
+        break;
+    }
+  }
+ 
  /**
   * Bulk generate aliases for all users without aliases.
   */
@@ -134 +158 @@  
      'Bulk generation of user blogs completed, @count aliases generated.'));
  }
  
+  /**
+   * Bulk generate aliases for all user contact forms without aliases.
+   */
+  function contact_pathauto_bulkupdate() {
+    $query = "SELECT uid, name, src, dst FROM {users} LEFT JOIN {url_alias} ON CONCAT('contact/', CAST(uid AS CHAR)) = src WHERE uid > 0 AND src IS NULL";
+    $result = db_query_range($query, 0, variable_get('pathauto_max_bulk_update', 50));
+ 
+    $count = 0;
+    $placeholders = array();
+    while ($user = db_fetch_object($result)) {
+      $placeholders = pathauto_get_placeholders('user', $user);
+      $src = 'user/'. $user->uid .'/contact';
+      if ($alias = pathauto_create_alias('contact', 'bulkupdate', $placeholders, $src, $user->uid)) {
+        $count++;
+      }
+    }
+  
+    drupal_set_message(format_plural($count,
+      'Bulk generation of user contact completed, one alias generated.',
+      'Bulk generation of user contact completed, @count aliases generated.'));
+  }
+  
  /**
   * Bulk generate aliases for user trackers without aliases.
   */