Index: smileys.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/smileys/Attic/smileys.module,v
retrieving revision 1.48.2.17
diff -u -p -r1.48.2.17 smileys.module
--- smileys.module	27 Jun 2009 15:54:50 -0000	1.48.2.17
+++ smileys.module	22 Sep 2009 06:40:10 -0000
@@ -249,6 +249,8 @@ function smileys_filter($op, $delta = 0,
 }
 
 function smileys_filter_process($text) {
+  global $base_url;
+
   $text = ' ' . $text . ' ';
   $list = _smileys_list(0, ' ORDER BY weight');
 
@@ -279,10 +281,16 @@ function smileys_filter_process($text) {
         $acronyms = explode(" ", $smiley->acronyms);
         $alt = str_replace('\\', '\\\\', check_plain($smiley->description));
         foreach ($acronyms as $a) {
-          if ($smiley->standalone)
-            $chunk = eregi_replace("([ ,\.\?!:\(\)\r\n\<\>])". preg_quote($a) ."([ ,\.\?!:\(\)\r\n\<\>])", "\\1<img src=\"". check_url($GLOBALS['base_url'] .'/'. $smiley->image) ."\" title=\"". check_plain($alt) ."\" alt=\"". check_plain($alt) ."\" class=\"smiley-content\"/>\\2", $chunk);
-          else
-            $chunk = eregi_replace(preg_quote($a), '<img src="'. check_url($GLOBALS['base_url'] .'/'. $smiley->image) .'" title="'. check_plain($alt) .'" alt="'. check_plain($alt) .'" />', $chunk);
+          if ($smiley->standalone) {
+            // For a discussion on additional unicode white space as smiley
+            // boundaries see http://drupal.org/node/567290#comment-2047730.
+            // Conclusion: If drupal requires >=PHP-4.4.0 reconsider using
+            // unicode PCRE like "\p{Zs}".
+            $chunk = preg_replace("/(?<=&nbsp;|\xC2\xA0|[ ,\.\?!:\(\)\r\n\<\>])". preg_quote($a) ."(?=&nbsp;|\xC2\xA0|[ ,\.\?!:\(\)\r\n\<\>])/i", '<img src="'. check_url($base_url .'/'. $smiley->image) .'" title="'. check_plain($alt) .'" alt="'. check_plain($alt) .'" class="smiley-content" />', $chunk);
+          }
+          else {
+            $chunk = preg_replace('/'. preg_quote($a) .'/i', '<img src="'. check_url($base_url .'/'. $smiley->image) .'" title="'. check_plain($alt) .'" alt="'. check_plain($alt) .'" class="smiley-content" />', $chunk);
+          }
         }
       }
     }  
