diff -urN mercurial-1.6.2/mercurial/archival.py mercurial-1.6.2-nobz2/mercurial/archival.py
--- mercurial-1.6.2/mercurial/archival.py	2009-01-01 00:38:33.000000000 +0100
+++ mercurial-1.6.2-nobz2/mercurial/archival.py	2009-01-01 13:53:14.000000000 +0100
@@ -67,8 +67,8 @@
                 self.fileobj.write(fname + '\000')
 
     def __init__(self, dest, prefix, mtime, kind=''):
-        self.prefix = tidyprefix(dest, prefix, ['.tar', '.tar.bz2', '.tar.gz',
-                                                '.tgz', '.tbz2'])
+        self.prefix = tidyprefix(dest, prefix, ['.tar', '.tar.gz',
+                                                '.tgz'])
         self.mtime = mtime
 
         def taropen(name, mode, fileobj=None):
@@ -182,7 +182,6 @@
 archivers = {
     'files': fileit,
     'tar': tarit,
-    'tbz2': lambda name, prefix, mtime: tarit(name, prefix, mtime, 'bz2'),
     'tgz': lambda name, prefix, mtime: tarit(name, prefix, mtime, 'gz'),
     'uzip': lambda name, prefix, mtime: zipit(name, prefix, mtime, False),
     'zip': zipit,
diff -urN mercurial-1.6.2/mercurial/bundlerepo.py mercurial-1.6.2-nobz2/mercurial/bundlerepo.py
--- mercurial-1.6.2/mercurial/bundlerepo.py	2009-01-01 00:38:33.000000000 +0100
+++ mercurial-1.6.2-nobz2/mercurial/bundlerepo.py	2009-01-01 13:53:59.000000000 +0100
@@ -13,7 +13,7 @@
 
 from node import nullid
 from i18n import _
-import os, struct, bz2, zlib, tempfile, shutil
+import os, struct, zlib, tempfile, shutil
 import changegroup, util, mdiff
 import localrepo, changelog, manifest, filelog, revlog, error
 
@@ -177,16 +177,13 @@
             raise util.Abort(_("%s: not a Mercurial bundle file") % bundlename)
         elif not header.startswith("HG10"):
             raise util.Abort(_("%s: unknown bundle version") % bundlename)
-        elif (header == "HG10BZ") or (header == "HG10GZ"):
+        elif (header == "HG10GZ"):
             fdtemp, temp = tempfile.mkstemp(prefix="hg-bundle-",
                                             suffix=".hg10un", dir=self.path)
             self.tempfile = temp
             fptemp = os.fdopen(fdtemp, 'wb')
             def generator(f):
-                if header == "HG10BZ":
-                    zd = bz2.BZ2Decompressor()
-                    zd.decompress("BZ")
-                elif header == "HG10GZ":
+                if header == "HG10GZ":
                     zd = zlib.decompressobj()
                 for chunk in f:
                     yield zd.decompress(chunk)
diff -urN mercurial-1.6.2/mercurial/changegroup.py mercurial-1.6.2-nobz2/mercurial/changegroup.py
--- mercurial-1.6.2/mercurial/changegroup.py	2009-01-01 00:38:33.000000000 +0100
+++ mercurial-1.6.2-nobz2/mercurial/changegroup.py	2009-01-01 13:52:05.000000000 +0100
@@ -8,5 +8,5 @@
 from i18n import _
 import util
-import struct, os, bz2, zlib, tempfile
+import struct, os, zlib, tempfile
 
 def getchunk(source):
@@ -52,7 +52,6 @@
 bundletypes = {
     "": ("", nocompress),
     "HG10UN": ("HG10UN", nocompress),
-    "HG10BZ": ("HG10", lambda: bz2.BZ2Compressor()),
     "HG10GZ": ("HG10GZ", lambda: zlib.compressobj()),
 }
 
@@ -69,4 +68,4 @@
 # hgweb uses this list to communicate its preferred type
-bundlepriority = ['HG10GZ', 'HG10BZ', 'HG10UN']
+bundlepriority = ['HG10GZ', 'HG10UN']
 
 def writebundle(cg, filename, bundletype):
@@ -135,12 +134,6 @@
             zd = zlib.decompressobj()
             for chunk in f:
                 yield zd.decompress(chunk)
-    elif header == 'HG10BZ':
-        def generator(f):
-            zd = bz2.BZ2Decompressor()
-            zd.decompress("BZ")
-            for chunk in util.filechunkiter(f, 4096):
-                yield zd.decompress(chunk)
     return util.chunkbuffer(generator(fh))
 
 def readbundle(fh, fname):
diff -urN mercurial-1.6.2/mercurial/hgweb/hgwebdir_mod.py mercurial-1.6.2-nobz2/mercurial/hgweb/hgwebdir_mod.py
--- mercurial-1.6.2/mercurial/hgweb/hgwebdir_mod.py	2009-01-01 00:38:33.000000000 +0100
+++ mercurial-1.6.2-nobz2/mercurial/hgweb/hgwebdir_mod.py	2009-01-01 13:54:29.000000000 +0100
@@ -191,7 +191,7 @@
 
         def archivelist(ui, nodeid, url):
             allowed = ui.configlist("web", "allow_archive", untrusted=True)
-            for i in [('zip', '.zip'), ('gz', '.tar.gz'), ('bz2', '.tar.bz2')]:
+            for i in [('zip', '.zip'), ('gz', '.tar.gz')]:
                 if i[0] in allowed or ui.configbool("web", "allow" + i[0],
                                                     untrusted=True):
                     yield {"type" : i[0], "extension": i[1],
diff -urN mercurial-1.6.2/mercurial/hgweb/hgweb_mod.py mercurial-1.6.2-nobz2/mercurial/hgweb/hgweb_mod.py
--- mercurial-1.6.2/mercurial/hgweb/hgweb_mod.py	2009-01-01 00:38:33.000000000 +0100
+++ mercurial-1.6.2-nobz2/mercurial/hgweb/hgweb_mod.py	2009-01-01 13:55:08.000000000 +0100
@@ -38,7 +38,7 @@
         hook.redirect(True)
         self.mtime = -1
         self.reponame = name
-        self.archives = 'zip', 'gz', 'bz2'
+        self.archives = 'zip', 'gz'
         self.stripecount = 1
         # a repo owner may set web.templates in .hg/hgrc to get any file
         # readable by the user running the CGI script
@@ -281,7 +281,6 @@
                 yield {"type" : i, "extension" : spec[2], "node" : nodeid}
 
     archive_specs = {
-        'bz2': ('application/x-tar', 'tbz2', '.tar.bz2', None),
         'gz': ('application/x-tar', 'tgz', '.tar.gz', None),
         'zip': ('application/zip', 'zip', '.zip', None),
         }
diff -urN mercurial-1.6.2/mercurial/repair.py mercurial-1.6.2-nobz2/mercurial/repair.py
--- mercurial-1.6.2/mercurial/repair.py	2009-01-01 00:38:33.000000000 +0100
+++ mercurial-1.6.2-nobz2/mercurial/repair.py	2009-01-01 13:55:08.000000000 +0100
@@ -20,4 +20,4 @@
     name = os.path.join(backupdir, "%s-%s.hg" % (short(node), suffix))
-    return changegroup.writebundle(cg, name, "HG10BZ")
+    return changegroup.writebundle(cg, name, "HG10GZ")
 
 def _collectfiles(repo, striprev):
diff -urN mercurial-1.6.2/mercurial/commands.py mercurial-1.6.2-nobz2/mercurial/commands.py
--- mercurial-1.6.2/mercurial/commands.py	2009-01-01 00:38:33.000000000 +0100
+++ mercurial-1.6.2-nobz2/mercurial/commands.py	2009-01-01 13:55:08.000000000 +0100
@@ -200,7 +200,6 @@
     def guess_type():
         exttypes = {
             'tar': ['.tar'],
-            'tbz2': ['.tbz2', '.tar.bz2'],
             'tgz': ['.tgz', '.tar.gz'],
             'zip': ['.zip'],
         }
@@ -613,8 +612,8 @@
     else:
         cg = repo.changegroup(o, 'bundle')
 
-    bundletype = opts.get('type', 'bzip2').lower()
-    btypes = {'none': 'HG10UN', 'bzip2': 'HG10BZ', 'gzip': 'HG10GZ'}
+    bundletype = opts.get('type', 'gzip').lower()
+    btypes = {'none': 'HG10UN', 'gzip': 'HG10GZ'}
     bundletype = btypes.get(bundletype)
     if bundletype not in changegroup.bundletypes:
         raise util.Abort(_('unknown bundle type specified with --type'))
@@ -2365,7 +2364,7 @@
                 cg = other.changegroup(incoming, "incoming")
             else:
                 cg = other.changegroupsubset(incoming, revs, 'incoming')
-            bundletype = other.local() and "HG10BZ" or "HG10UN"
+            bundletype = other.local() and "HG10GZ" or "HG10UN"
             fname = cleanup = changegroup.writebundle(cg, fname, bundletype)
             # keep written bundle?
             if opts["bundle"]:
@@ -4043,7 +4042,7 @@
            _('a base changeset assumed to be available at the destination'),
            _('REV')),
           ('a', 'all', None, _('bundle all changesets in the repository')),
-          ('t', 'type', 'bzip2',
+          ('t', 'type', 'gzip',
            _('bundle compression type to use'), _('TYPE')),
          ] + remoteopts,
          _('[-f] [-t TYPE] [-a] [-r REV]... [--base REV]... FILE [DEST]')),
diff -urN mercurial-1.6.2/setup.py mercurial-1.6.2-nobz2/setup.py
--- mercurial-1.6.2/setup.py	2009-01-01 00:38:33.000000000 +0100
+++ mercurial-1.6.2-nobz2/setup.py	2009-01-01 13:55:08.000000000 +0100
@@ -27,9 +27,3 @@
         "Couldn't import standard zlib (incomplete Python install).")
-
-try:
-    import bz2
-except:
-    raise SystemExit(
-        "Couldn't import standard bz2 (incomplete Python install).")
 
 import os, subprocess, time