--- pathauto.inc.bak	2007-09-26 00:37:29.000000000 -0700
+++ pathauto.inc	2007-09-26 00:37:29.000000000 -0700
@@ -98,11 +98,16 @@ function pathauto_cleanstring($string) {
   
     $output = strtr($output, $translations);
   
-    // Preserve alphanumerics, everything else becomes a separator.
-    $pattern = '/[^a-zA-Z0-9]+/ ';
-    $output = preg_replace($pattern, $separator, $output);
   }
 
+  // Remove HTML character entities caused by token module
+  $pattern = '/\&#?[_a-zA-Z0-9]*\;/';
+  $output = preg_replace($pattern, "", $output); 
+
+  // Preserve alphanumerics, everything else becomes a separator.
+  $pattern = '/[^a-zA-Z0-9]+/ ';
+  $output = preg_replace($pattern, $separator, $output);
+
   // Get rid of words that are on the ignore list
   $ignore_re = "\b". preg_replace("/,/", "\b|\b", variable_get('pathauto_ignore_words', $ignore_words)) ."\b";
   $output = preg_replace("/$ignore_re/ie", "", $output);
