--- bc/execute.c
+++ bc/execute.c
@@ -638,19 +638,19 @@ push_constant (int (*in_char)(VOID), int conv_base)
       }
 
   /* Check for the special case of a single digit. */
-  if (in_ch < 36)
+  if (in_ch < 16)
     {
       first_ch = in_ch;
       in_ch = in_char();
-      if (in_ch < 36 && first_ch >= conv_base)
+      if (in_ch < 16 && first_ch >= conv_base)
 	first_ch = conv_base - 1;
       bc_int2num (&build, (int) first_ch);
     }
 
   /* Convert the integer part. */
-  while (in_ch < 36)
+  while (in_ch < 16)
     {
-      if (in_ch < 36 && in_ch >= conv_base) in_ch = conv_base-1;
+      if (in_ch < 16 && in_ch >= conv_base) in_ch = conv_base-1;
       bc_multiply (build, mult, &result, 0);
       bc_int2num (&temp, (int) in_ch);
       bc_add (result, temp, &build, 0);
@@ -665,7 +665,7 @@ push_constant (int (*in_char)(VOID), int conv_base)
       divisor = bc_copy_num (_one_);
       result = bc_copy_num (_zero_);
       digits = 0;
-      while (in_ch < 36)
+      while (in_ch < 16)
 	{
 	  bc_multiply (result, mult, &result, 0);
 	  bc_int2num (&temp, (int) in_ch);
@@ -673,7 +673,7 @@ push_constant (int (*in_char)(VOID), int conv_base)
 	  bc_multiply (divisor, mult, &divisor, 0);
 	  digits++;
 	  in_ch = in_char();
-	  if (in_ch < 36 && in_ch >= conv_base) in_ch = conv_base-1;
+	  if (in_ch < 16 && in_ch >= conv_base) in_ch = conv_base-1;
 	}
       bc_divide (result, divisor, &result, digits);
       bc_add (build, result, &build, 0);
