Index: modules/filter/filter.module
===================================================================
--- modules/filter/filter.module	(revision 968)
+++ modules/filter/filter.module	(working copy)
@@ -1295,9 +1295,9 @@
     (
     <(?=[^a-zA-Z!/])  # a lone <
     |                 # or
-    <[^>]*(>|$)       # a string that starts with a <, up until the > or the end of the string
-    |                 # or
-    >                 # just a >
+    <[^!>]*(>|$)       # a string that starts with a <, up until the > or the end of the string
+    |
+    <!-- | -->        # HTML Comment
     )%x', '_filter_xss_split', $string);
 }
 
@@ -1324,7 +1324,9 @@
 
   $string = $m[1];
 
-  if (substr($string, 0, 1) != '<') {
+  if ($string == '<!--' || $string == '-->') {
+    return $string;
+  } else if (substr($string, 0, 1) != '<') {
     // We matched a lone ">" character
     return '&gt;';
   }
