Index: modules/mysite/plugins/types/path.inc
===================================================================
--- modules/mysite/plugins/types/path.inc	(revision 964)
+++ modules/mysite/plugins/types/path.inc	(working copy)
@@ -8,7 +8,7 @@
  *
  */
 function mysite_type_path($get_options = TRUE) {
-  if (module_exists('path')) {
+  if (module_exists('path') && !module_exists('pathauto')) {
     $type = array(
       'name' => t('Path'),
       'description' => t('<b>Path Aliases</b>: Creates <em>mysite/USERNAME</em> path aliases for all MySite users.'),
@@ -40,16 +40,17 @@
  *
  */
 function mysite_type_path_updated($uid) {
-  $types = variable_get('mysite_content', NULL);
-  if (!empty($types['path']) && $uid > 0) {
-    $alias = variable_get('mysite_path_rules', 0);
-    $sql = "SELECT uid, name FROM {users} WHERE uid = %d";
-    $result = db_query($sql, $uid);
-    $myuser = db_fetch_object($result);
-    $path = "mysite/$myuser->name";
-    $check = drupal_lookup_path('alias', $path);
-    if ($check == FALSE) {
-      path_set_alias("mysite/$myuser->uid/view", $path);
-    }
+  if ($uid > 0) return; // authenticated users only
+  $account = user_load(array('uid' => $uid));
+  $src = 'mysite/'. $account->uid .'/view';
+  
+  if (module_exists('pathauto')) { // pathauto is enabled
+    $alias = pathauto_create_alias('mysite', 'update', $placeholders = array( // let pathauto handle this
+      t('[user]') => pathauto_cleanstring($account->name),
+      t('[uid]') => $account->uid,
+    ), $src);
+  } else if (($types = variable_get('mysite_content', NULL)) && !empty($types['path'])) { // user enabled MySite path aliases
+    path_set_alias($src); // nuke existing aliases for this user's MySite page
+    path_set_alias($src, $alias); // create a new url alias for this user's MySite page
   }
-} 
\ No newline at end of file
+}
\ No newline at end of file
Index: modules/mysite/mysite.module
===================================================================
--- modules/mysite/mysite.module	(revision 973)
+++ modules/mysite/mysite.module	(working copy)
@@ -3574,4 +3574,53 @@
   $top = drupal_render($form);
   $output = $top . $table . $buttons;
   return $output;
-} 
\ No newline at end of file
+} 
+
+/**
+ * Implementation of hook_pathauto() for MySite pages.
+ * 
+ */
+function mysite_pathauto($op) {
+  switch ($op) {
+    case 'settings':
+      $settings = array();
+      $settings['module'] = 'mysite';
+      $settings['groupheader'] = t('MySite path settings');
+      $settings['patterndescr'] = t('Pattern for MySite page paths');
+      $settings['patterndefault'] = t('mysite/[user]');
+      $settings['placeholders'] = array(
+        t('[user]') => t('The name of the user.'),
+        t('[uid]') => t('The id number of the user.')
+      );
+      $settings['bulkname'] = t('Bulk update MySite paths');
+      $settings['bulkdescr'] = t('Generate aliases for all existing MySite pages which do not already have aliases.');
+      return (object) $settings;
+    default:
+      break;
+  }
+}
+
+/**
+ * Implementation of hook_pathauto_bulkupdate().
+ * 
+ * Generate aliases for all users without aliases.
+ * 
+ */
+function mysite_pathauto_bulkupdate() {
+  $count = 0;
+  $placeholders = array();
+  
+  $result = db_query('SELECT m.uid, u.name FROM {mysite} m INNER JOIN {users} u ON m.uid = u.uid WHERE u.status = 1');
+  while ($account = db_fetch_object($result)) {
+    if ($alias = pathauto_create_alias('mysite', 'bulkupdate', $placeholders = array(
+      t('[user]') => pathauto_cleanstring($account->name),
+      t('[uid]') => $account->uid,
+    ), $src = 'mysite/'. $account->uid .'/view')) {
+      $count++;
+    }
+  }
+  
+  drupal_set_message(format_plural($count,
+    "Bulk update of MySite pages completed, one alias generated.",
+    "Bulk update of MySite pages completed, @count aliases generated."));
+}
\ No newline at end of file
