--- /home/2/v/venturas/tmp/drupal-6.3/modules/filter/filter.module 2008-07-09 23:48:28.000000000 +0200 +++ ./filter.module 2008-07-22 11:35:13.000000000 +0200 @@ -767,10 +767,10 @@ } // Properly entify angles. - $text = preg_replace('!<([^a-zA-Z/])!', '<\1', $text); + $text = preg_replace('@<([^a-zA-Z/!])@', '<\1', $text); // Split tags from text. - $split = preg_split('/<([^>]+?)>/', $text, -1, PREG_SPLIT_DELIM_CAPTURE); + $split = preg_split('/<([^>!]+?)>/', $text, -1, PREG_SPLIT_DELIM_CAPTURE); // Note: PHP ensures the array consists of alternating delimiters and literals // and begins and ends with a literal (inserting $null as required). @@ -875,7 +875,7 @@ // We don't apply any processing to the contents of these tags to avoid messing // up code. We look for matched pairs and allow basic nesting. For example: // "processed
 ignored  ignored 
processed" - $chunks = preg_split('@(]*>)@i', $text, -1, PREG_SPLIT_DELIM_CAPTURE); + $chunks = preg_split('@(?:()|(]*>))@si', $text, -1, PREG_SPLIT_DELIM_CAPTURE); // Note: PHP ensures the array consists of alternating delimiters and literals // and begins and ends with a literal (inserting NULL as required). $ignore = FALSE;