diff --git a/feedbackloop/arf.py b/feedbackloop/arf.py
index eb7cc72d0002ab1652319f9f43b43afa63c66241..592e58902fee1ba5a1a9f094d8c56d5163448ee9 100644
--- a/feedbackloop/arf.py
+++ b/feedbackloop/arf.py
@@ -18,7 +18,7 @@
     http://www.faqs.org/rfcs/rfc5965.html
 """
 import json
-from email.parser import Parser
+from email.parser import BytesParser
 from email.message import Message
 
 class ARFMessage(object):
@@ -26,7 +26,7 @@ class ARFMessage(object):
     """
 
     def __init__(self, arf_source):
-        self._message = Parser().parsestr(arf_source)
+        self._message = BytesParser().parsebytes(arf_source)
 
     def _get_part(self, subtype):
         for part in self._message.walk():
diff --git a/feedbackloop/parse.py b/feedbackloop/parse.py
index aa35ab1eb70799cd1588ae577cd9d6697750c6b1..d28d358190ef72a243faeaed374df3920346f9d5 100644
--- a/feedbackloop/parse.py
+++ b/feedbackloop/parse.py
@@ -114,7 +114,7 @@ class MailScanner():
             try:
 
                 # Parse the ARF message body.
-                msg = ARFMessage(raw_msg.decode('utf-8'))
+                msg = ARFMessage(raw_msg)
                 report_sender, _ = _normalize_addr(
                     _hdr(msg.get_message_headers(), 'From'))