--- pathauto.module	2010-09-09 21:21:59.935690275 +0200
+++ pathautoNEW.module	2010-09-09 21:22:12.195374467 +0200
@@ -229,6 +229,10 @@ function pathauto_nodeapi(&$node, $op, $
          */
         $node->path = $node->old_alias;
       }
+      _pathauto_include();
+      $placeholders = pathauto_get_placeholders('node', $node);
+      $src = "node/$node->nid";
+      $node->autopath = pathauto_create_alias('node', 'return', $placeholders, "node/{$node->nid}", $node->nid, $node->type, $node->language);
       break;
     case 'insert':
     case 'update':
@@ -246,7 +250,7 @@ function pathauto_nodeapi(&$node, $op, $
       // Only do work if there's a pattern
       if ($pattern) {
         // Only create an alias if the checkbox was not provided or if the checkbox was provided and is checked
-        if (!isset($node->pathauto_perform_alias) || $node->pathauto_perform_alias) {
+        if ((!isset($node->pathauto_perform_alias) && (!isset($node->path) || $node->path == $node->autopath)) || $node->pathauto_perform_alias) {
           $placeholders = pathauto_get_placeholders('node', $node);
           $src = "node/$node->nid";
           $node->path = pathauto_create_alias('node', $op, $placeholders, $src, $node->nid, $node->type, $node->language);
