diff --git a/lib/modules/Tools.pmod/Standalone.pmod/precompile.pike b/lib/modules/Tools.pmod/Standalone.pmod/precompile.pike
index b1080cf965aa769f6f919ba09f999b312adb6079..40760f3b64215b47a44c369ed585db80c2cb34ac 100644
--- a/lib/modules/Tools.pmod/Standalone.pmod/precompile.pike
+++ b/lib/modules/Tools.pmod/Standalone.pmod/precompile.pike
@@ -1120,7 +1120,12 @@ class PikeType
 		  if (sizeof(tmp) == 1) {
 		    int bits;
 		    /* Support the string(Xbit) syntax too. */
-		    if ((sizeof(q) == 4) && ((string)q[2] == "bit") &&
+		    if (sizeof(q) == 3 && sscanf((string)q[1], "%dbit", bits))
+                    {
+		      low = "0";
+		      high = sprintf("%d", (1 << bits) - 1);
+		    }
+		    else if ((sizeof(q) == 4) && ((string)q[2] == "bit") &&
 			((bits = (int)(string)q[1]) > 0)) {
 		      low = "0";
 		      high = sprintf("%d", (1 << bits) - 1);