diff --git a/email-validate.cabal b/email-validate.cabal
--- a/email-validate.cabal
+++ b/email-validate.cabal
@@ -1,5 +1,5 @@
 name:           email-validate
-version:        2.1.1
+version:        2.1.2
 license:        BSD3
 license-file:   LICENSE
 author:         George Pollard <porges@porg.es>
@@ -19,7 +19,7 @@
 source-repository this
     type: git
     location: git://github.com/Porges/email-validate-hs.git
-    tag: v2.1.1
+    tag: v2.1.2
 
 library
     build-depends:
diff --git a/src/Text/Email/Parser.hs b/src/Text/Email/Parser.hs
--- a/src/Text/Email/Parser.hs
+++ b/src/Text/Email/Parser.hs
@@ -29,14 +29,12 @@
     show = show . toByteString
 
 instance Read EmailAddress where
-    readsPrec _ ('"':s) = go (parse addrSpec $ BS.pack s) where
-        go (Fail _ _ _) = []
-        go (Partial f)  = go (f BS.empty)
-        go (Done r adr) = 
-            case BS.unpack r of
-                ('"':r') -> [(adr, r')]
-                _ -> []
-    readsPrec _ _ = []
+    readListPrec = Read.readListPrecDefault
+    readPrec = Read.parens (do
+        bs <- Read.readPrec
+        case parseOnly (addrSpec <* endOfInput) bs of
+            Left  _ -> Read.pfail
+            Right a -> return a)
 
 -- | Converts an email address back to a ByteString
 toByteString :: EmailAddress -> ByteString
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -1,6 +1,5 @@
 module Main where
 
-
 import Text.Email.Validate
 import Test.HUnit
 
@@ -23,16 +22,22 @@
                 testProperty "showAndReadBackWithoutQuoteFails" prop_showAndReadBackWithoutQuoteFails,
                 testProperty "showAndReadBack" prop_showAndReadBack
                 ],
+
         testGroup "QuickCheck Text.Email.Validate" [
                 testProperty "doubleCanonicalize" prop_doubleCanonicalize
                 ],
+
         testGroup "Unit tests Text.Email.Validate" $ flip concatMap units
             (\(em, valid, _) -> let email = BS.pack em
                 in
                     [
                     testCase ("doubleCanonicalize '" ++ em ++ "'") (True @=? case emailAddress email of { Nothing -> True; Just ok -> prop_doubleCanonicalize ok }),
                     testCase ("validity test '" ++ em ++ "'") (valid @=? isValid email)
-                    ])
+                    ]),
+
+        testGroup "Issues" [
+            testCase "#12" (let (Right em) = validate (BS.pack "\"\"@1") in em @=? read (show em))
+            ]
        ]
 
 instance Arbitrary ByteString where
