diff --git a/mode/haskell/haskell.js b/mode/haskell/haskell.js
index fe0bab67ed6be855cd67c9e1c2ac419634c67ebb..4197666a44f4561f1621cd13dafd3b478b36ea2a 100644
--- a/mode/haskell/haskell.js
+++ b/mode/haskell/haskell.js
@@ -56,7 +56,7 @@ CodeMirror.defineMode("haskell", function(_config, modeConfig) {
       if (source.eat('\'')) {
         return "string";
       }
-      return "error";
+      return "string error";
     }
 
     if (ch == '"') {
@@ -166,7 +166,7 @@ CodeMirror.defineMode("haskell", function(_config, modeConfig) {
       }
     }
     setState(normal);
-    return "error";
+    return "string error";
   }
 
   function stringGap(source, setState) {
@@ -194,7 +194,7 @@ CodeMirror.defineMode("haskell", function(_config, modeConfig) {
       "module", "newtype", "of", "then", "type", "where", "_");
 
     setType("keyword")(
-      "\.\.", ":", "::", "=", "\\", "\"", "<-", "->", "@", "~", "=>");
+      "\.\.", ":", "::", "=", "\\", "<-", "->", "@", "~", "=>");
 
     setType("builtin")(
       "!!", "$!", "$", "&&", "+", "++", "-", ".", "/", "/=", "<", "<=", "=<<",