diff --git a/site/modules/contrib/wordfilter/wordfilter.module b/site/modules/contrib/wordfilter/wordfilter.module
index af272b6..ca85d6a 100644
--- a/site/modules/contrib/wordfilter/wordfilter.module
+++ b/site/modules/contrib/wordfilter/wordfilter.module
@@ -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';
@@ -364,7 +367,14 @@ function wordfilter_filter_process($text) {
         $new_string = '';
         foreach ($split_text as $part) {
           if (!preg_match('/^</', $part)) {
-            $new_string .= preg_replace($pattern, "\${1}". $replacement ."\${2}", $part);
+            if ($word->standalone) {
+              $all_patterns = array($patterns['start'], $patterns['middle'], $patterns['end']);
+              $all_replacements = array($replacement ."\${1}", "\${1}". $replacement ."\${2}", "\${1}". $replacement);
+              $new_string .= preg_replace($all_patterns, $all_replacements, $part);
+            }
+            else {
+              $new_string .= preg_replace($pattern, "\${1}". $replacement ."\${2}", $part);
+            }
           }
           else {
             $new_string .= $part;
@@ -373,7 +383,14 @@ function wordfilter_filter_process($text) {
         $text = ' '. $new_string .' ';
       }
       else {
-        $text = preg_replace($pattern, "\${1}". $replacement ."\${2}", $text);
+        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);
+        }
       }
     }
   }
