diff --git a/mercurial/revlog.py b/mercurial/revlog.py
index 4fd1f1d7569bceef4cbb98603f4968bb36ccb289_bWVyY3VyaWFsL3JldmxvZy5weQ==..d628bcb3a567a4018fc9855876f5c020b0493648_bWVyY3VyaWFsL3JldmxvZy5weQ== 100644
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -112,7 +112,10 @@
     if t == '\0':
         return bin
     if t == 'x':
-        return _decompress(bin)
+        try:
+            return _decompress(bin)
+        except zlib.error, e:
+            raise RevlogError(_("revlog decompress error: %s") % str(e))
     if t == 'u':
         return bin[1:]
     raise RevlogError(_("unknown compression type %r") % t)