diff --git a/Lib/mimetypes.py b/Lib/mimetypes.py
index 7a8b765..ee2ff61 100644
--- a/Lib/mimetypes.py
+++ b/Lib/mimetypes.py
@@ -315,162 +315,171 @@
     return db.types_map[True]
 
 
-suffix_map = {
-    '.tgz': '.tar.gz',
-    '.taz': '.tar.gz',
-    '.tz': '.tar.gz',
-    }
+def _default_mime_types():
+    global suffix_map
+    global encodings_map
+    global types_map
+    global common_types
 
-encodings_map = {
-    '.gz': 'gzip',
-    '.Z': 'compress',
-    }
+    suffix_map = {
+        '.tgz': '.tar.gz',
+        '.taz': '.tar.gz',
+        '.tz': '.tar.gz',
+        }
 
-# Before adding new types, make sure they are either registered with IANA, at
-# http://www.isi.edu/in-notes/iana/assignments/media-types
-# or extensions, i.e. using the x- prefix
+    encodings_map = {
+        '.gz': 'gzip',
+        '.Z': 'compress',
+        }
 
-# If you add to these, please keep them sorted!
-types_map = {
-    '.a'      : 'application/octet-stream',
-    '.ai'     : 'application/postscript',
-    '.aif'    : 'audio/x-aiff',
-    '.aifc'   : 'audio/x-aiff',
-    '.aiff'   : 'audio/x-aiff',
-    '.au'     : 'audio/basic',
-    '.avi'    : 'video/x-msvideo',
-    '.bat'    : 'text/plain',
-    '.bcpio'  : 'application/x-bcpio',
-    '.bin'    : 'application/octet-stream',
-    '.bmp'    : 'image/x-ms-bmp',
-    '.c'      : 'text/plain',
-    # Duplicates :(
-    '.cdf'    : 'application/x-cdf',
-    '.cdf'    : 'application/x-netcdf',
-    '.cpio'   : 'application/x-cpio',
-    '.csh'    : 'application/x-csh',
-    '.css'    : 'text/css',
-    '.dll'    : 'application/octet-stream',
-    '.doc'    : 'application/msword',
-    '.dot'    : 'application/msword',
-    '.dvi'    : 'application/x-dvi',
-    '.eml'    : 'message/rfc822',
-    '.eps'    : 'application/postscript',
-    '.etx'    : 'text/x-setext',
-    '.exe'    : 'application/octet-stream',
-    '.gif'    : 'image/gif',
-    '.gtar'   : 'application/x-gtar',
-    '.h'      : 'text/plain',
-    '.hdf'    : 'application/x-hdf',
-    '.htm'    : 'text/html',
-    '.html'   : 'text/html',
-    '.ief'    : 'image/ief',
-    '.jpe'    : 'image/jpeg',
-    '.jpeg'   : 'image/jpeg',
-    '.jpg'    : 'image/jpeg',
-    '.js'     : 'application/x-javascript',
-    '.ksh'    : 'text/plain',
-    '.latex'  : 'application/x-latex',
-    '.m1v'    : 'video/mpeg',
-    '.man'    : 'application/x-troff-man',
-    '.me'     : 'application/x-troff-me',
-    '.mht'    : 'message/rfc822',
-    '.mhtml'  : 'message/rfc822',
-    '.mif'    : 'application/x-mif',
-    '.mov'    : 'video/quicktime',
-    '.movie'  : 'video/x-sgi-movie',
-    '.mp2'    : 'audio/mpeg',
-    '.mp3'    : 'audio/mpeg',
-    '.mpa'    : 'video/mpeg',
-    '.mpe'    : 'video/mpeg',
-    '.mpeg'   : 'video/mpeg',
-    '.mpg'    : 'video/mpeg',
-    '.ms'     : 'application/x-troff-ms',
-    '.nc'     : 'application/x-netcdf',
-    '.nws'    : 'message/rfc822',
-    '.o'      : 'application/octet-stream',
-    '.obj'    : 'application/octet-stream',
-    '.oda'    : 'application/oda',
-    '.p12'    : 'application/x-pkcs12',
-    '.p7c'    : 'application/pkcs7-mime',
-    '.pbm'    : 'image/x-portable-bitmap',
-    '.pdf'    : 'application/pdf',
-    '.pfx'    : 'application/x-pkcs12',
-    '.pgm'    : 'image/x-portable-graymap',
-    '.pl'     : 'text/plain',
-    '.png'    : 'image/png',
-    '.pnm'    : 'image/x-portable-anymap',
-    '.pot'    : 'application/vnd.ms-powerpoint',
-    '.ppa'    : 'application/vnd.ms-powerpoint',
-    '.ppm'    : 'image/x-portable-pixmap',
-    '.pps'    : 'application/vnd.ms-powerpoint',
-    '.ppt'    : 'application/vnd.ms-powerpoint',
-    '.ps'     : 'application/postscript',
-    '.pwz'    : 'application/vnd.ms-powerpoint',
-    '.py'     : 'text/x-python',
-    '.pyc'    : 'application/x-python-code',
-    '.pyo'    : 'application/x-python-code',
-    '.qt'     : 'video/quicktime',
-    '.ra'     : 'audio/x-pn-realaudio',
-    '.ram'    : 'application/x-pn-realaudio',
-    '.ras'    : 'image/x-cmu-raster',
-    '.rdf'    : 'application/xml',
-    '.rgb'    : 'image/x-rgb',
-    '.roff'   : 'application/x-troff',
-    '.rtx'    : 'text/richtext',
-    '.sgm'    : 'text/x-sgml',
-    '.sgml'   : 'text/x-sgml',
-    '.sh'     : 'application/x-sh',
-    '.shar'   : 'application/x-shar',
-    '.snd'    : 'audio/basic',
-    '.so'     : 'application/octet-stream',
-    '.src'    : 'application/x-wais-source',
-    '.sv4cpio': 'application/x-sv4cpio',
-    '.sv4crc' : 'application/x-sv4crc',
-    '.swf'    : 'application/x-shockwave-flash',
-    '.t'      : 'application/x-troff',
-    '.tar'    : 'application/x-tar',
-    '.tcl'    : 'application/x-tcl',
-    '.tex'    : 'application/x-tex',
-    '.texi'   : 'application/x-texinfo',
-    '.texinfo': 'application/x-texinfo',
-    '.tif'    : 'image/tiff',
-    '.tiff'   : 'image/tiff',
-    '.tr'     : 'application/x-troff',
-    '.tsv'    : 'text/tab-separated-values',
-    '.txt'    : 'text/plain',
-    '.ustar'  : 'application/x-ustar',
-    '.vcf'    : 'text/x-vcard',
-    '.wav'    : 'audio/x-wav',
-    '.wiz'    : 'application/msword',
-    '.wsdl'   : 'application/xml',
-    '.xbm'    : 'image/x-xbitmap',
-    '.xlb'    : 'application/vnd.ms-excel',
-    # Duplicates :(
-    '.xls'    : 'application/excel',
-    '.xls'    : 'application/vnd.ms-excel',
-    '.xml'    : 'text/xml',
-    '.xpdl'   : 'application/xml',
-    '.xpm'    : 'image/x-xpixmap',
-    '.xsl'    : 'application/xml',
-    '.xwd'    : 'image/x-xwindowdump',
-    '.zip'    : 'application/zip',
-    }
+    # Before adding new types, make sure they are either registered with IANA, 
+    # at http://www.isi.edu/in-notes/iana/assignments/media-types
+    # or extensions, i.e. using the x- prefix
 
-# These are non-standard types, commonly found in the wild.  They will only
-# match if strict=0 flag is given to the API methods.
+    # If you add to these, please keep them sorted!
+    types_map = {
+        '.a'      : 'application/octet-stream',
+        '.ai'     : 'application/postscript',
+        '.aif'    : 'audio/x-aiff',
+        '.aifc'   : 'audio/x-aiff',
+        '.aiff'   : 'audio/x-aiff',
+        '.au'     : 'audio/basic',
+        '.avi'    : 'video/x-msvideo',
+        '.bat'    : 'text/plain',
+        '.bcpio'  : 'application/x-bcpio',
+        '.bin'    : 'application/octet-stream',
+        '.bmp'    : 'image/x-ms-bmp',
+        '.c'      : 'text/plain',
+        # Duplicates :(
+        '.cdf'    : 'application/x-cdf',
+        '.cdf'    : 'application/x-netcdf',
+        '.cpio'   : 'application/x-cpio',
+        '.csh'    : 'application/x-csh',
+        '.css'    : 'text/css',
+        '.dll'    : 'application/octet-stream',
+        '.doc'    : 'application/msword',
+        '.dot'    : 'application/msword',
+        '.dvi'    : 'application/x-dvi',
+        '.eml'    : 'message/rfc822',
+        '.eps'    : 'application/postscript',
+        '.etx'    : 'text/x-setext',
+        '.exe'    : 'application/octet-stream',
+        '.gif'    : 'image/gif',
+        '.gtar'   : 'application/x-gtar',
+        '.h'      : 'text/plain',
+        '.hdf'    : 'application/x-hdf',
+        '.htm'    : 'text/html',
+        '.html'   : 'text/html',
+        '.ief'    : 'image/ief',
+        '.jpe'    : 'image/jpeg',
+        '.jpeg'   : 'image/jpeg',
+        '.jpg'    : 'image/jpeg',
+        '.js'     : 'application/x-javascript',
+        '.ksh'    : 'text/plain',
+        '.latex'  : 'application/x-latex',
+        '.m1v'    : 'video/mpeg',
+        '.man'    : 'application/x-troff-man',
+        '.me'     : 'application/x-troff-me',
+        '.mht'    : 'message/rfc822',
+        '.mhtml'  : 'message/rfc822',
+        '.mif'    : 'application/x-mif',
+        '.mov'    : 'video/quicktime',
+        '.movie'  : 'video/x-sgi-movie',
+        '.mp2'    : 'audio/mpeg',
+        '.mp3'    : 'audio/mpeg',
+        '.mpa'    : 'video/mpeg',
+        '.mpe'    : 'video/mpeg',
+        '.mpeg'   : 'video/mpeg',
+        '.mpg'    : 'video/mpeg',
+        '.ms'     : 'application/x-troff-ms',
+        '.nc'     : 'application/x-netcdf',
+        '.nws'    : 'message/rfc822',
+        '.o'      : 'application/octet-stream',
+        '.obj'    : 'application/octet-stream',
+        '.oda'    : 'application/oda',
+        '.p12'    : 'application/x-pkcs12',
+        '.p7c'    : 'application/pkcs7-mime',
+        '.pbm'    : 'image/x-portable-bitmap',
+        '.pdf'    : 'application/pdf',
+        '.pfx'    : 'application/x-pkcs12',
+        '.pgm'    : 'image/x-portable-graymap',
+        '.pl'     : 'text/plain',
+        '.png'    : 'image/png',
+        '.pnm'    : 'image/x-portable-anymap',
+        '.pot'    : 'application/vnd.ms-powerpoint',
+        '.ppa'    : 'application/vnd.ms-powerpoint',
+        '.ppm'    : 'image/x-portable-pixmap',
+        '.pps'    : 'application/vnd.ms-powerpoint',
+        '.ppt'    : 'application/vnd.ms-powerpoint',
+        '.ps'     : 'application/postscript',
+        '.pwz'    : 'application/vnd.ms-powerpoint',
+        '.py'     : 'text/x-python',
+        '.pyc'    : 'application/x-python-code',
+        '.pyo'    : 'application/x-python-code',
+        '.qt'     : 'video/quicktime',
+        '.ra'     : 'audio/x-pn-realaudio',
+        '.ram'    : 'application/x-pn-realaudio',
+        '.ras'    : 'image/x-cmu-raster',
+        '.rdf'    : 'application/xml',
+        '.rgb'    : 'image/x-rgb',
+        '.roff'   : 'application/x-troff',
+        '.rtx'    : 'text/richtext',
+        '.sgm'    : 'text/x-sgml',
+        '.sgml'   : 'text/x-sgml',
+        '.sh'     : 'application/x-sh',
+        '.shar'   : 'application/x-shar',
+        '.snd'    : 'audio/basic',
+        '.so'     : 'application/octet-stream',
+        '.src'    : 'application/x-wais-source',
+        '.sv4cpio': 'application/x-sv4cpio',
+        '.sv4crc' : 'application/x-sv4crc',
+        '.swf'    : 'application/x-shockwave-flash',
+        '.t'      : 'application/x-troff',
+        '.tar'    : 'application/x-tar',
+        '.tcl'    : 'application/x-tcl',
+        '.tex'    : 'application/x-tex',
+        '.texi'   : 'application/x-texinfo',
+        '.texinfo': 'application/x-texinfo',
+        '.tif'    : 'image/tiff',
+        '.tiff'   : 'image/tiff',
+        '.tr'     : 'application/x-troff',
+        '.tsv'    : 'text/tab-separated-values',
+        '.txt'    : 'text/plain',
+        '.ustar'  : 'application/x-ustar',
+        '.vcf'    : 'text/x-vcard',
+        '.wav'    : 'audio/x-wav',
+        '.wiz'    : 'application/msword',
+        '.wsdl'   : 'application/xml',
+        '.xbm'    : 'image/x-xbitmap',
+        '.xlb'    : 'application/vnd.ms-excel',
+        # Duplicates :(
+        '.xls'    : 'application/excel',
+        '.xls'    : 'application/vnd.ms-excel',
+        '.xml'    : 'text/xml',
+        '.xpdl'   : 'application/xml',
+        '.xpm'    : 'image/x-xpixmap',
+        '.xsl'    : 'application/xml',
+        '.xwd'    : 'image/x-xwindowdump',
+        '.zip'    : 'application/zip',
+        }
 
-# Please sort these too
-common_types = {
-    '.jpg' : 'image/jpg',
-    '.mid' : 'audio/midi',
-    '.midi': 'audio/midi',
-    '.pct' : 'image/pict',
-    '.pic' : 'image/pict',
-    '.pict': 'image/pict',
-    '.rtf' : 'application/rtf',
-    '.xul' : 'text/xul'
-    }
+    # These are non-standard types, commonly found in the wild.  They will 
+    # only match if strict=0 flag is given to the API methods.
+
+    # Please sort these too
+    common_types = {
+        '.jpg' : 'image/jpg',
+        '.mid' : 'audio/midi',
+        '.midi': 'audio/midi',
+        '.pct' : 'image/pict',
+        '.pic' : 'image/pict',
+        '.pict': 'image/pict',
+        '.rtf' : 'application/rtf',
+        '.xul' : 'text/xul'
+        }
+
+
+_default_mime_types()
 
 
 if __name__ == '__main__':
diff --git a/Lib/test/test_mimetypes.py b/Lib/test/test_mimetypes.py
index 5939ff5..8c584ad 100644
--- a/Lib/test/test_mimetypes.py
+++ b/Lib/test/test_mimetypes.py
@@ -8,6 +8,7 @@
 # Tell it we don't know about external files:
 mimetypes.knownfiles = []
 mimetypes.inited = False
+mimetypes._default_mime_types()
 
 
 class MimeTypesTestCase(unittest.TestCase):
