oct(0) should return '0', not '00'
diff --git a/Objects/longobject.c b/Objects/longobject.c
index f9e3765..7ede30c 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -322,8 +322,10 @@
 		})
 	} while (ABS(a->ob_size) != 0);
 	DECREF(a);
-	if (base == 8)
-		*--p = '0';
+	if (base == 8) {
+		if (size_a != 0)
+			*--p = '0';
+	}
 	else if (base == 16) {
 		*--p = 'x';
 		*--p = '0';