Index: Lib/pkgutil.py =================================================================== --- Lib/pkgutil.py (revision 66563) +++ Lib/pkgutil.py (working copy) @@ -321,8 +321,7 @@ from zipimport import zipimporter def iter_zipimport_modules(importer, prefix=''): - dirlist = zipimport._zip_directory_cache[importer.archive].keys() - dirlist.sort() + dirlist = sorted(zipimport._zip_directory_cache[importer.archive]) _prefix = importer.prefix plen = len(_prefix) yielded = {} Index: Lib/test/test_pkgutil.py =================================================================== --- Lib/test/test_pkgutil.py (revision 66563) +++ Lib/test/test_pkgutil.py (working copy) @@ -74,6 +74,12 @@ self.assertEqual(res1, RESOURCE_DATA) res2 = pkgutil.get_data(pkg, 'sub/res.txt') self.assertEqual(res2, RESOURCE_DATA) + + names = [] + for loader, name, ispkg in pkgutil.iter_modules([zip_file]): + names.append(name) + self.assertEqual(names, ['test_getdata_zipfile']) + del sys.path[0] del sys.modules[pkg]