diff --git a/ParseSyntaxFiles.hs b/ParseSyntaxFiles.hs
--- a/ParseSyntaxFiles.hs
+++ b/ParseSyntaxFiles.hs
@@ -293,7 +293,7 @@
             "LineContinue"     -> "pLineContinue"
             "IncludeRules"     -> case parserContext parser of
                                       ('#':'#':xs) -> langNameToModule xs ++ ".parseExpression" ++
-                                                      if parserIncludeAttrib parser
+                                                      if parserIncludeAttrib parser || null (parserAttribute parser)
                                                          then ""
                                                          else " >>= ((withAttribute " ++ show (parserAttribute parser) ++ ") . snd)" 
                                       xs           -> "parseRules " ++ show xs
diff --git a/Text/Highlighting/Kate/Syntax/Awk.hs b/Text/Highlighting/Kate/Syntax/Awk.hs
--- a/Text/Highlighting/Kate/Syntax/Awk.hs
+++ b/Text/Highlighting/Kate/Syntax/Awk.hs
@@ -116,7 +116,7 @@
      return (attr, result)
 
 parseRules "Comment" = 
-  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
      return (attr, result)
 
 parseRules x = fail $ "Unknown context" ++ x
diff --git a/Text/Highlighting/Kate/Syntax/Bash.hs b/Text/Highlighting/Kate/Syntax/Bash.hs
--- a/Text/Highlighting/Kate/Syntax/Bash.hs
+++ b/Text/Highlighting/Kate/Syntax/Bash.hs
@@ -230,7 +230,7 @@
      return (attr, result)
 
 parseRules "Comment" = 
-  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
      return (attr, result)
 
 parseRules "FindCommentsParen" = 
@@ -242,7 +242,7 @@
 parseRules "CommentParen" = 
   do (attr, result) <- (((pRegExpr regex_'5b'5e'29'5d'28'3f'3d'5c'29'29 >>= withAttribute "Comment") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression)))
      return (attr, result)
 
 parseRules "FindCommentsBackq" = 
@@ -254,7 +254,7 @@
 parseRules "CommentBackq" = 
   do (attr, result) <- (((pRegExpr regex_'5b'5e'60'5d'28'3f'3d'60'29 >>= withAttribute "Comment") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression)))
      return (attr, result)
 
 parseRules "FindCommands" = 
diff --git a/Text/Highlighting/Kate/Syntax/C.hs b/Text/Highlighting/Kate/Syntax/C.hs
--- a/Text/Highlighting/Kate/Syntax/C.hs
+++ b/Text/Highlighting/Kate/Syntax/C.hs
@@ -143,7 +143,7 @@
                         <|>
                         ((pDetectChar False '"' >>= withAttribute "String") >>~ pushContext "String")
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression))
                         <|>
                         ((pDetect2Chars False '/' '/' >>= withAttribute "Comment") >>~ pushContext "Commentar 1")
                         <|>
@@ -166,13 +166,13 @@
 parseRules "Commentar 1" = 
   do (attr, result) <- (((pLineContinue >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression)))
      return (attr, result)
 
 parseRules "Commentar 2" = 
   do (attr, result) <- (((pDetect2Chars False '*' '/' >>= withAttribute "Comment") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression)))
      return (attr, result)
 
 parseRules "AfterHash" = 
@@ -194,7 +194,7 @@
                         <|>
                         ((pRangeDetect '<' '>' >>= withAttribute "Prep. Lib"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression))
                         <|>
                         ((pDetect2Chars False '/' '*' >>= withAttribute "Comment") >>~ pushContext "Commentar/Preprocessor"))
      return (attr, result)
@@ -210,13 +210,13 @@
 parseRules "Outscoped" = 
   do (attr, result) <- (((pDetectSpaces >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment"))
                         <|>
                         ((pDetectChar False '"' >>= withAttribute "String") >>~ pushContext "String")
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression))
                         <|>
                         ((pDetect2Chars False '/' '/' >>= withAttribute "Comment") >>~ pushContext "Commentar 1")
                         <|>
@@ -232,13 +232,13 @@
 parseRules "Outscoped intern" = 
   do (attr, result) <- (((pDetectSpaces >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment"))
                         <|>
                         ((pDetectChar False '"' >>= withAttribute "String") >>~ pushContext "String")
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression))
                         <|>
                         ((pDetect2Chars False '/' '/' >>= withAttribute "Comment") >>~ pushContext "Commentar 1")
                         <|>
diff --git a/Text/Highlighting/Kate/Syntax/Cmake.hs b/Text/Highlighting/Kate/Syntax/Cmake.hs
--- a/Text/Highlighting/Kate/Syntax/Cmake.hs
+++ b/Text/Highlighting/Kate/Syntax/Cmake.hs
@@ -111,7 +111,7 @@
      return (attr, result)
 
 parseRules "Comment" = 
-  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
      return (attr, result)
 
 parseRules x = fail $ "Unknown context" ++ x
diff --git a/Text/Highlighting/Kate/Syntax/Cpp.hs b/Text/Highlighting/Kate/Syntax/Cpp.hs
--- a/Text/Highlighting/Kate/Syntax/Cpp.hs
+++ b/Text/Highlighting/Kate/Syntax/Cpp.hs
@@ -142,7 +142,7 @@
                                                                           <|>
                                                                           ((pString False "L" >>= withAttribute "Decimal"))))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression))
                         <|>
                         ((pDetect2Chars False '/' '/' >>= withAttribute "Comment") >>~ pushContext "Commentar 1")
                         <|>
@@ -169,7 +169,7 @@
 parseRules "Commentar 1" = 
   do (attr, result) <- (((pDetectSpaces >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment")))
      return (attr, result)
@@ -179,7 +179,7 @@
                         <|>
                         ((pDetect2Chars False '*' '/' >>= withAttribute "Comment") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment")))
      return (attr, result)
@@ -203,7 +203,7 @@
                         <|>
                         ((pRangeDetect '<' '>' >>= withAttribute "Prep. Lib"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression))
                         <|>
                         ((pDetect2Chars False '/' '*' >>= withAttribute "Comment") >>~ pushContext "Commentar/Preprocessor")
                         <|>
@@ -225,13 +225,13 @@
 parseRules "Outscoped" = 
   do (attr, result) <- (((pDetectSpaces >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment"))
                         <|>
                         ((pDetectChar False '"' >>= withAttribute "String") >>~ pushContext "String")
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression))
                         <|>
                         ((pDetect2Chars False '/' '/' >>= withAttribute "Comment") >>~ pushContext "Commentar 1")
                         <|>
@@ -247,13 +247,13 @@
 parseRules "Outscoped intern" = 
   do (attr, result) <- (((pDetectSpaces >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment"))
                         <|>
                         ((pDetectChar False '"' >>= withAttribute "String") >>~ pushContext "String")
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression))
                         <|>
                         ((pDetect2Chars False '/' '/' >>= withAttribute "Comment") >>~ pushContext "Commentar 1")
                         <|>
diff --git a/Text/Highlighting/Kate/Syntax/Css.hs b/Text/Highlighting/Kate/Syntax/Css.hs
--- a/Text/Highlighting/Kate/Syntax/Css.hs
+++ b/Text/Highlighting/Kate/Syntax/Css.hs
@@ -217,7 +217,7 @@
                         <|>
                         ((pDetect2Chars False '*' '/' >>= withAttribute "Comment") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment")))
      return (attr, result)
diff --git a/Text/Highlighting/Kate/Syntax/Djangotemplate.hs b/Text/Highlighting/Kate/Syntax/Djangotemplate.hs
--- a/Text/Highlighting/Kate/Syntax/Djangotemplate.hs
+++ b/Text/Highlighting/Kate/Syntax/Djangotemplate.hs
@@ -318,7 +318,7 @@
 parseRules "Comment" = 
   do (attr, result) <- (((pDetectSpaces >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((parseRules "FindTemplate"))
                         <|>
@@ -458,7 +458,7 @@
                         <|>
                         ((parseRules "FindTemplate"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression)))
      return (attr, result)
 
 parseRules "Value" = 
diff --git a/Text/Highlighting/Kate/Syntax/Doxygen.hs b/Text/Highlighting/Kate/Syntax/Doxygen.hs
--- a/Text/Highlighting/Kate/Syntax/Doxygen.hs
+++ b/Text/Highlighting/Kate/Syntax/Doxygen.hs
@@ -135,7 +135,7 @@
 parseRules "LineComment" = 
   do (attr, result) <- (((pDetectSpaces >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}" list_TagOnly >>= withAttribute "Tags"))
                         <|>
@@ -163,7 +163,7 @@
                         <|>
                         ((pDetect2Chars False '*' '/' >>= withAttribute "Comment") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetect2Chars False '@' '{' >>= withAttribute "Region"))
                         <|>
@@ -263,7 +263,7 @@
 parseRules "ML_htmlcomment" = 
   do (attr, result) <- (((lookAhead (pDetect2Chars False '*' '/') >> return ([],"") ) >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pString False "-->" >>= withAttribute "HTML Comment") >>~ (popContext >> return ())))
      return (attr, result)
@@ -359,7 +359,7 @@
      return (attr, result)
 
 parseRules "SL_htmlcomment" = 
-  do (attr, result) <- (((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+  do (attr, result) <- (((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pString False "-->" >>= withAttribute "HTML Comment") >>~ (popContext >> return ())))
      return (attr, result)
diff --git a/Text/Highlighting/Kate/Syntax/Dtd.hs b/Text/Highlighting/Kate/Syntax/Dtd.hs
--- a/Text/Highlighting/Kate/Syntax/Dtd.hs
+++ b/Text/Highlighting/Kate/Syntax/Dtd.hs
@@ -110,7 +110,7 @@
                         <|>
                         ((pString False "-->" >>= withAttribute "Comment") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment")))
      return (attr, result)
@@ -158,7 +158,7 @@
                         <|>
                         ((pDetect2Chars False '-' '-' >>= withAttribute "Comment") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment")))
      return (attr, result)
diff --git a/Text/Highlighting/Kate/Syntax/Erlang.hs b/Text/Highlighting/Kate/Syntax/Erlang.hs
--- a/Text/Highlighting/Kate/Syntax/Erlang.hs
+++ b/Text/Highlighting/Kate/Syntax/Erlang.hs
@@ -148,7 +148,7 @@
 parseRules "comment" = 
   do (attr, result) <- (((pDetectSpaces >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment")))
      return (attr, result)
diff --git a/Text/Highlighting/Kate/Syntax/Html.hs b/Text/Highlighting/Kate/Syntax/Html.hs
--- a/Text/Highlighting/Kate/Syntax/Html.hs
+++ b/Text/Highlighting/Kate/Syntax/Html.hs
@@ -215,7 +215,7 @@
 parseRules "Comment" = 
   do (attr, result) <- (((pDetectSpaces >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment"))
                         <|>
@@ -341,7 +341,7 @@
 parseRules "JS comment close" = 
   do (attr, result) <- (((pRegExpr regex_'3c'2fscript'5cb >>= withAttribute "Element") >>~ pushContext "El Close 3")
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression)))
      return (attr, result)
 
 parseRules "Value" = 
diff --git a/Text/Highlighting/Kate/Syntax/Java.hs b/Text/Highlighting/Kate/Syntax/Java.hs
--- a/Text/Highlighting/Kate/Syntax/Java.hs
+++ b/Text/Highlighting/Kate/Syntax/Java.hs
@@ -104,7 +104,7 @@
 defaultAttributes = [("Normal","Normal Text"),("InFunctionCall","Normal Text"),("String","String"),("EnterPrintf","Normal Text"),("Printf","Printf"),("PrintfString","PrintfString"),("Member","Normal Text"),("StaticImports","Normal Text"),("Imports","Normal Text"),("Commentar 1","Comment"),("Commentar 2","Comment")]
 
 parseRules "Normal" = 
-  do (attr, result) <- (((Text.Highlighting.Kate.Syntax.Javadoc.parseExpression >>= ((withAttribute "") . snd)))
+  do (attr, result) <- (((Text.Highlighting.Kate.Syntax.Javadoc.parseExpression))
                         <|>
                         ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_keywords >>= withAttribute "Keyword"))
                         <|>
diff --git a/Text/Highlighting/Kate/Syntax/Javadoc.hs b/Text/Highlighting/Kate/Syntax/Javadoc.hs
--- a/Text/Highlighting/Kate/Syntax/Javadoc.hs
+++ b/Text/Highlighting/Kate/Syntax/Javadoc.hs
@@ -133,7 +133,7 @@
                         <|>
                         ((pString False "{@value\t" >>= withAttribute "InlineTag") >>~ pushContext "InlineTagar")
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Html.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Html.parseExpression)))
      return (attr, result)
 
 parseRules "Javadocar" = 
@@ -215,7 +215,7 @@
                         <|>
                         ((pString False "{@value\t" >>= withAttribute "InlineTag") >>~ pushContext "InlineTagar")
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Html.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Html.parseExpression)))
      return (attr, result)
 
 parseRules "JavadocParam" = 
@@ -231,7 +231,7 @@
                         <|>
                         ((pDetect2Chars False '*' '/' >>= withAttribute "JavadocFS") >>~ (popContext >> popContext >> popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Html.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Html.parseExpression)))
      return (attr, result)
 
 parseRules "LiteralTagar" = 
@@ -243,7 +243,7 @@
 parseRules "SeeTag" = 
   do (attr, result) <- (((pDetect2Chars False '*' '/' >>= withAttribute "JavadocFS") >>~ (popContext >> popContext >> popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Html.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Html.parseExpression)))
      return (attr, result)
 
 parseRules x = fail $ "Unknown context" ++ x
diff --git a/Text/Highlighting/Kate/Syntax/Javascript.hs b/Text/Highlighting/Kate/Syntax/Javascript.hs
--- a/Text/Highlighting/Kate/Syntax/Javascript.hs
+++ b/Text/Highlighting/Kate/Syntax/Javascript.hs
@@ -165,13 +165,13 @@
 parseRules "Comment" = 
   do (attr, result) <- (((pDetectSpaces >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment")))
      return (attr, result)
 
 parseRules "Multi/inline Comment" = 
-  do (attr, result) <- (((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+  do (attr, result) <- (((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetect2Chars False '*' '/' >>= withAttribute "Comment") >>~ (popContext >> return ())))
      return (attr, result)
diff --git a/Text/Highlighting/Kate/Syntax/Lex.hs b/Text/Highlighting/Kate/Syntax/Lex.hs
--- a/Text/Highlighting/Kate/Syntax/Lex.hs
+++ b/Text/Highlighting/Kate/Syntax/Lex.hs
@@ -130,7 +130,7 @@
      return (attr, result)
 
 parseRules "User Code" = 
-  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression >>= ((withAttribute "") . snd)))
+  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression))
      return (attr, result)
 
 parseRules "Percent Command" = 
@@ -225,19 +225,19 @@
      return (attr, result)
 
 parseRules "Indented C" = 
-  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression >>= ((withAttribute "") . snd)))
+  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression))
      return (attr, result)
 
 parseRules "Lex C Bloc" = 
   do (attr, result) <- (((pColumn 0 >> pDetect2Chars False '%' '}' >>= withAttribute "Content-Type Delimiter") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression)))
      return (attr, result)
 
 parseRules "Lex Rule C Bloc" = 
   do (attr, result) <- (((pDetect2Chars False '%' '}' >>= withAttribute "Content-Type Delimiter") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression)))
      return (attr, result)
 
 parseRules "Normal C Bloc" = 
@@ -245,7 +245,7 @@
                         <|>
                         ((pDetectChar False '}' >>= withAttribute "Normal Text") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression)))
      return (attr, result)
 
 parseRules "Action C" = 
@@ -253,7 +253,7 @@
                         <|>
                         ((pDetectChar False '}' >>= withAttribute "Alert"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression)))
      return (attr, result)
 
 parseRules x = fail $ "Unknown context" ++ x
diff --git a/Text/Highlighting/Kate/Syntax/LiterateHaskell.hs b/Text/Highlighting/Kate/Syntax/LiterateHaskell.hs
--- a/Text/Highlighting/Kate/Syntax/LiterateHaskell.hs
+++ b/Text/Highlighting/Kate/Syntax/LiterateHaskell.hs
@@ -93,7 +93,7 @@
 parseRules "normal" = 
   do (attr, result) <- (((pRegExpr regex_'5c'7b'2d'5b'5e'23'5d >>= withAttribute "Comment") >>~ pushContext "comments'")
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Haskell.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Haskell.parseExpression)))
      return (attr, result)
 
 parseRules "normals" = 
@@ -101,7 +101,7 @@
                         <|>
                         ((pString False "\\end{spec}" >>= withAttribute "Normal") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Haskell.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Haskell.parseExpression)))
      return (attr, result)
 
 parseRules "comments'" = 
diff --git a/Text/Highlighting/Kate/Syntax/Lua.hs b/Text/Highlighting/Kate/Syntax/Lua.hs
--- a/Text/Highlighting/Kate/Syntax/Lua.hs
+++ b/Text/Highlighting/Kate/Syntax/Lua.hs
@@ -101,7 +101,7 @@
 defaultAttributes = [("Normal","Normal Text"),("Comment","Comment"),("Block Comment","Comment"),("String_single","Strings"),("String_double","Strings"),("String_block","Strings"),("Error","Error")]
 
 parseRules "Normal" = 
-  do (attr, result) <- (((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression >>= ((withAttribute "") . snd)))
+  do (attr, result) <- (((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression))
                         <|>
                         ((pKeyword " \n\t():!+,-<=>%&*/;?[]^{|}~\\\"" list_deprecated >>= withAttribute "Error"))
                         <|>
diff --git a/Text/Highlighting/Kate/Syntax/Objectivec.hs b/Text/Highlighting/Kate/Syntax/Objectivec.hs
--- a/Text/Highlighting/Kate/Syntax/Objectivec.hs
+++ b/Text/Highlighting/Kate/Syntax/Objectivec.hs
@@ -151,7 +151,7 @@
                         <|>
                         ((pRangeDetect '<' '>' >>= withAttribute "Prep. Lib"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression))
                         <|>
                         ((pDetect2Chars False '/' '/' >>= withAttribute "Comment") >>~ pushContext "SingleLineComment")
                         <|>
diff --git a/Text/Highlighting/Kate/Syntax/Perl.hs b/Text/Highlighting/Kate/Syntax/Perl.hs
--- a/Text/Highlighting/Kate/Syntax/Perl.hs
+++ b/Text/Highlighting/Kate/Syntax/Perl.hs
@@ -919,7 +919,7 @@
 parseRules "comment" = 
   do (attr, result) <- (((pDetectSpaces >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment")))
      return (attr, result)
diff --git a/Text/Highlighting/Kate/Syntax/Php.hs b/Text/Highlighting/Kate/Syntax/Php.hs
--- a/Text/Highlighting/Kate/Syntax/Php.hs
+++ b/Text/Highlighting/Kate/Syntax/Php.hs
@@ -117,7 +117,7 @@
                         <|>
                         ((pDetectChar False '#' >>= withAttribute "Comment") >>~ pushContext "onelinecomment")
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Doxygen.parseExpression))
                         <|>
                         ((pDetect2Chars False '/' '/' >>= withAttribute "Comment") >>~ pushContext "onelinecomment")
                         <|>
diff --git a/Text/Highlighting/Kate/Syntax/Rhtml.hs b/Text/Highlighting/Kate/Syntax/Rhtml.hs
--- a/Text/Highlighting/Kate/Syntax/Rhtml.hs
+++ b/Text/Highlighting/Kate/Syntax/Rhtml.hs
@@ -375,7 +375,7 @@
 parseRules "Comment" = 
   do (attr, result) <- (((pDetectSpaces >>= withAttribute "Comment"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment"))
                         <|>
@@ -521,7 +521,7 @@
 parseRules "JS comment close" = 
   do (attr, result) <- (((pRegExpr regex_'3c'2fscript'5cb >>= withAttribute "Element") >>~ pushContext "El Close 3")
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression)))
      return (attr, result)
 
 parseRules "Value" = 
diff --git a/Text/Highlighting/Kate/Syntax/Scala.hs b/Text/Highlighting/Kate/Syntax/Scala.hs
--- a/Text/Highlighting/Kate/Syntax/Scala.hs
+++ b/Text/Highlighting/Kate/Syntax/Scala.hs
@@ -95,7 +95,7 @@
 defaultAttributes = [("Normal","Normal Text"),("String","String"),("Printf","Printf"),("PrintfString","PrintfString"),("Member","Normal Text"),("Commentar 1","Comment"),("Commentar 2","Comment")]
 
 parseRules "Normal" = 
-  do (attr, result) <- (((Text.Highlighting.Kate.Syntax.Javadoc.parseExpression >>= ((withAttribute "") . snd)))
+  do (attr, result) <- (((Text.Highlighting.Kate.Syntax.Javadoc.parseExpression))
                         <|>
                         ((pKeyword " \n\t.():!+,-<=>%&*/;?[]^{|}~\\" list_keywords >>= withAttribute "Keyword"))
                         <|>
diff --git a/Text/Highlighting/Kate/Syntax/Texinfo.hs b/Text/Highlighting/Kate/Syntax/Texinfo.hs
--- a/Text/Highlighting/Kate/Syntax/Texinfo.hs
+++ b/Text/Highlighting/Kate/Syntax/Texinfo.hs
@@ -97,13 +97,13 @@
      return (attr, result)
 
 parseRules "singleLineComment" = 
-  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
      return (attr, result)
 
 parseRules "multiLineComment" = 
   do (attr, result) <- (((pString False "@end ignore" >>= withAttribute "Comment") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression)))
      return (attr, result)
 
 parseRules "nodeFolding" = 
diff --git a/Text/Highlighting/Kate/Syntax/Xml.hs b/Text/Highlighting/Kate/Syntax/Xml.hs
--- a/Text/Highlighting/Kate/Syntax/Xml.hs
+++ b/Text/Highlighting/Kate/Syntax/Xml.hs
@@ -146,7 +146,7 @@
                         <|>
                         ((pRegExpr regex_'2d'28'2d'28'3f'21'2d'3e'29'29'2b >>= withAttribute "Error"))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Alert.parseExpression))
                         <|>
                         ((pDetectIdentifier >>= withAttribute "Comment")))
      return (attr, result)
diff --git a/Text/Highlighting/Kate/Syntax/Yacc.hs b/Text/Highlighting/Kate/Syntax/Yacc.hs
--- a/Text/Highlighting/Kate/Syntax/Yacc.hs
+++ b/Text/Highlighting/Kate/Syntax/Yacc.hs
@@ -115,7 +115,7 @@
                         <|>
                         ((pColumn 0 >> pDetect2Chars False '%' '}' >>= withAttribute "Content-Type Delimiter") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression)))
      return (attr, result)
 
 parseRules "Declarations" = 
@@ -145,7 +145,7 @@
                         <|>
                         ((pDetectChar False '}' >>= withAttribute "Normal Text") >>~ (popContext >> popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression)))
      return (attr, result)
 
 parseRules "Union InIn" = 
@@ -153,7 +153,7 @@
                         <|>
                         ((pDetectChar False '}' >>= withAttribute "Normal Text") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression >>= ((withAttribute "") . snd))))
+                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression)))
      return (attr, result)
 
 parseRules "Rules" = 
@@ -177,7 +177,7 @@
      return (attr, result)
 
 parseRules "User Code" = 
-  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression >>= ((withAttribute "") . snd)))
+  do (attr, result) <- ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression))
      return (attr, result)
 
 parseRules "Percent Command" = 
@@ -233,7 +233,7 @@
                         <|>
                         ((pDetectChar False '}' >>= withAttribute "Normal Text") >>~ (popContext >> return ()))
                         <|>
-                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression >>= ((withAttribute "") . snd)))
+                        ((Text.Highlighting.Kate.Syntax.Cpp.parseExpression))
                         <|>
                         ((pDetectChar False '$' >>= withAttribute "Directive") >>~ pushContext "Dol"))
      return (attr, result)
diff --git a/highlighting-kate.cabal b/highlighting-kate.cabal
--- a/highlighting-kate.cabal
+++ b/highlighting-kate.cabal
@@ -1,5 +1,5 @@
 Name:                highlighting-kate
-Version:             0.2.7
+Version:             0.2.7.1
 Cabal-Version:       >= 1.2
 Build-Type:          Simple
 Category:            Text
diff --git a/xml/literate-haskell.xml b/xml/literate-haskell.xml
--- a/xml/literate-haskell.xml
+++ b/xml/literate-haskell.xml
@@ -11,12 +11,12 @@
     </context>
     <context attribute="Normal" lineEndContext="#pop" name="normal">
       <RegExpr attribute="Comment" context="comments'" String="\{-[^#]" />
-      <IncludeRules context="##Haskell" />
+      <IncludeRules context="##Haskell" includeAttrib="true" />
     </context>
     <context attribute="Normal" lineEndContext="#stay" name="normals">
       <StringDetect attribute="Normal" context="#pop" String="&#92;end&#123;code&#125;"/>
       <StringDetect attribute="Normal" context="#pop" String="&#92;end&#123;spec&#125;"/>
-      <IncludeRules context="##Haskell" />
+      <IncludeRules context="##Haskell" includeAttrib="true" />
     </context>
     <context attribute="Comment" lineEndContext="uncomments" name="comments'" >
       <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" />
