Remove traces of rfc822.
diff --git a/Lib/http/server.py b/Lib/http/server.py
index 2b6f135..35ade6c 100644
--- a/Lib/http/server.py
+++ b/Lib/http/server.py
@@ -315,7 +315,7 @@
 
         # Examine the headers and look for a Connection directive.
 
-        # MessageClass (rfc822) wants to see strings rather than bytes.
+        # MessageClass wants to see strings rather than bytes.
         # But a TextIOWrapper around self.rfile would buffer too many bytes
         # from the stream, bytes which we later need to read as bytes.
         # So we read the correct bytes here, as bytes, then use StringIO
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index e67f0d6..d59e6b1 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -131,7 +131,7 @@
 def quoteaddr(addr):
     """Quote a subset of the email addresses defined by RFC 821.
 
-    Should be able to handle anything rfc822.parseaddr can handle.
+    Should be able to handle anything email.utils.parseaddr can handle.
     """
     m = (None, None)
     try:
diff --git a/Lib/test/test_pyclbr.py b/Lib/test/test_pyclbr.py
index 70eea04..8287877 100644
--- a/Lib/test/test_pyclbr.py
+++ b/Lib/test/test_pyclbr.py
@@ -140,6 +140,7 @@
 
     def test_easy(self):
         self.checkModule('pyclbr')
+        self.checkModule('ast')
         self.checkModule('doctest', ignore=("TestResults", "_SpoofOut"))
         self.checkModule('difflib', ignore=("Match",))
 
diff --git a/Tools/faqwiz/faqwiz.py b/Tools/faqwiz/faqwiz.py
index 15342f1..260e1aa 100644
--- a/Tools/faqwiz/faqwiz.py
+++ b/Tools/faqwiz/faqwiz.py
@@ -207,8 +207,8 @@
         self.file = file
         self.sec, self.num = sec_num
         if fp:
-            import rfc822
-            self.__headers = rfc822.Message(fp)
+            import email
+            self.__headers = email.message_from_file(fp)
             self.body = fp.read().strip()
         else:
             self.__headers = {'title': "%d.%d. " % sec_num}
diff --git a/Tools/scripts/mailerdaemon.py b/Tools/scripts/mailerdaemon.py
index ee4199e..4934b92 100755
--- a/Tools/scripts/mailerdaemon.py
+++ b/Tools/scripts/mailerdaemon.py
@@ -1,16 +1,16 @@
 """mailerdaemon - classes to parse mailer-daemon messages"""
 
-import rfc822
 import calendar
+import email.message
 import re
 import os
 import sys
 
 Unparseable = 'mailerdaemon.Unparseable'
 
-class ErrorMessage(rfc822.Message):
-    def __init__(self, fp):
-        rfc822.Message.__init__(self, fp)
+class ErrorMessage(email.message.Message):
+    def __init__(self):
+        email.message.Message.__init__(self)
         self.sub = ''
 
     def is_warning(self):
@@ -169,7 +169,7 @@
     for fn in files:
         # Lets try to parse the file.
         fp = open(fn)
-        m = ErrorMessage(fp)
+        m = email.message_from_file(fp, _class=ErrorMessage)
         sender = m.getaddr('From')
         print('%s\t%-40s\t'%(fn, sender[1]), end=' ')
 
diff --git a/Tools/versioncheck/pyversioncheck.py b/Tools/versioncheck/pyversioncheck.py
index 8826555..e5983fd 100644
--- a/Tools/versioncheck/pyversioncheck.py
+++ b/Tools/versioncheck/pyversioncheck.py
@@ -1,6 +1,6 @@
 """pyversioncheck - Module to help with checking versions"""
-import rfc822
 import urllib
+import email
 import sys
 
 # Verbose options
@@ -52,7 +52,7 @@
         if verbose >= VERBOSE_EACHFILE:
             print('    Cannot open:', arg)
         return -1, None, None
-    msg = rfc822.Message(fp, seekable=0)
+    msg = email.message_from_file(fp)
     newversion = msg.get('current-version')
     if not newversion:
         if verbose >= VERBOSE_EACHFILE: