--- cppexp.c.old	Thu Jan  9 17:35:55 2003
+++ cppexp.c	Thu Jan  9 17:37:24 2003
@@ -113,6 +113,11 @@
 	  p += 2;
 	  base = 16;
 	}
+      else if (end - start >= 3 && (p[1] == 'b' || p[1] == 'B'))
+	{
+	  p += 2;
+	  base = 2;
+	}
       else
 	{
 	  p += 1;
--- c-lex.c.old	Thu Jan  9 17:48:35 2003
+++ c-lex.c	Thu Jan  9 17:38:35 2003
@@ -877,6 +877,11 @@
       base = 16;
       p = str + 2;
     }
+  else if (len > 2 && str[0] == '0' && (str[1] == 'b' || str[1] == 'B'))
+    {
+      base = 2;
+      p = str + 2;
+    }
   /* The ISDIGIT check is so we are not confused by a suffix on 0.  */
   else if (str[0] == '0' && ISDIGIT (str[1]))
     {
