Index: wordfilter.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/wordfilter/wordfilter.module,v
retrieving revision 1.7.2.9.2.22
diff -b -u -p -r1.7.2.9.2.22 wordfilter.module
--- wordfilter.module	16 Aug 2010 23:40:10 -0000	1.7.2.9.2.22
+++ wordfilter.module	17 Aug 2010 00:24:43 -0000
@@ -349,7 +349,10 @@ function wordfilter_filter_process($text
       $replacement = ($word->replacement) ? $word->replacement : variable_get('wordfilter_default_replacement', '[filtered word]');
 
       if ($word->standalone) {
-        $pattern = '/(\W)'. preg_quote($word->words, '/') .'(\W)/i';
+        $patterns = array();
+        $patterns['middle'] = '/(\W)'. preg_quote($word->words, '/') .'(\W)/i';
+        $patterns['start'] = '/^'. preg_quote($word->words, '/') .'(\W)/i';
+        $patterns['end'] = '/(\W)'. preg_quote($word->words, '/') .'$/i';
       }
       else {
         $pattern = '/'. preg_quote($word->words, '/') .'/i';
@@ -373,10 +376,17 @@ function wordfilter_filter_process($text
         $text = ' '. $new_string .' ';
       }
       else {
+        if ($word->standalone) {
+          $text = preg_replace($patterns['start'], $replacement ."\${1}", $text);
+          $text = preg_replace($patterns['middle'], "\${1}". $replacement ."\${2}", $text);
+          $text = preg_replace($patterns['end'], "\${1}". $replacement, $text);
+        }
+        else {
         $text = preg_replace($pattern, "\${1}". $replacement ."\${2}", $text);
       }
     }
   }
+  }
   $text = drupal_substr($text, 1, -1);
 
   return $text;
