decode_long():  Simplified the "is it negative?" test.
diff --git a/Lib/pickletools.py b/Lib/pickletools.py
index 5c0367b..dec533d 100644
--- a/Lib/pickletools.py
+++ b/Lib/pickletools.py
@@ -590,14 +590,17 @@
     -256L
     >>> decode_long("\x00\x80")
     -32768L
-    >>> 
+    >>> decode_long("\x80")
+    -128L
+    >>> decode_long("\x7f")
+    127L
     """
     x = 0L
     i = 0L
     for c in data:
         x |= long(ord(c)) << i
         i += 8L
-    if i and (x & (1L << (i-1L))):
+    if data and ord(c) >= 0x80:
         x -= 1L << i
     return x