diff --git a/Lib/distutils/dist.py b/Lib/distutils/dist.py
index afed545..f49afcc 100644
--- a/Lib/distutils/dist.py
+++ b/Lib/distutils/dist.py
@@ -359,7 +359,7 @@
         parser = ConfigParser()
         for filename in filenames:
             if DEBUG:
-                self.announce("  reading", filename)
+                self.announce("  reading %s" % filename)
             parser.read(filename)
             for section in parser.sections():
                 options = parser.options(section)
diff --git a/Lib/distutils/log.py b/Lib/distutils/log.py
index 6f949d5..7588570 100644
--- a/Lib/distutils/log.py
+++ b/Lib/distutils/log.py
@@ -17,6 +17,9 @@
         self.threshold = threshold
 
     def _log(self, level, msg, args):
+        if level not in (DEBUG, INFO, WARN, ERROR, FATAL):
+            raise ValueError('%s wrong log level' % str(level))
+
         if level >= self.threshold:
             if args:
                 msg = msg % args
diff --git a/Lib/distutils/tests/test_dist.py b/Lib/distutils/tests/test_dist.py
index 553f30c..3d4b25f 100644
--- a/Lib/distutils/tests/test_dist.py
+++ b/Lib/distutils/tests/test_dist.py
@@ -200,6 +200,13 @@
         self.assertEquals(cmds, ['distutils.command', 'one', 'two'])
 
 
+    def test_announce(self):
+        # make sure the level is known
+        dist = Distribution()
+        args = ('ok',)
+        kwargs = {'level': 'ok2'}
+        self.assertRaises(ValueError, dist.announce, args, kwargs)
+
 class MetadataTestCase(support.TempdirManager, support.EnvironGuard,
                        unittest.TestCase):
 
