diff --git a/Network/Mail/SMTP.hs b/Network/Mail/SMTP.hs
--- a/Network/Mail/SMTP.hs
+++ b/Network/Mail/SMTP.hs
@@ -121,9 +121,14 @@
     do bsPutCrLf conn "DATA"
        (code, _) <- parseResponse conn
        unless (code == 354) $ fail "this server cannot accept any data."
-       mapM_ sendLine $ BS.lines dat ++ [BS.pack "."]
+       mapM_ sendLine $ split dat ++ [BS.pack "."]
        parseResponse conn
-    where sendLine = bsPutCrLf conn
+    where 
+      sendLine = bsPutCrLf conn
+      -- split on '\n' and remove any trailing '\r' from parts
+      split = map stripCR . BS.lines
+      stripCR s = if cr `BS.isSuffixOf` s then BS.init s else s
+      cr = BS.pack "\r"
 sendCommand (SMTPC conn _) (AUTH LOGIN username password) =
     do bsPutCrLf conn command
        _ <- parseResponse conn
diff --git a/smtp-mail.cabal b/smtp-mail.cabal
--- a/smtp-mail.cabal
+++ b/smtp-mail.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                smtp-mail
-version:             0.1.4.1
+version:             0.1.4.2
 synopsis:            Simple email sending via SMTP
 -- description:         
 homepage:            http://github.com/jhickner/smtp-mail
