diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a3585fce330fc311379ded4825c7e9298d616aa2..cf67ace445a6f9bd6126fc241e24fb15c822d447 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,8 @@
 2003-06-17  Mark Mitchell  <mark@codesourcery.com>
 
+	PR c++/1255
+	* class.c (handle_using_decl): Robustify.
+
 	PR c++/11105
 	* cp-tree.h (DECL_CONV_FN_TYPE): New method.
 	* mangle.c (struct globals): Remove internal_mangling_p.
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index c4887f1bb8d111e646ba8ac8376565cffae641a9..53f097b2bdf453e3d32610babe1e2abaf0cb647e 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -1108,6 +1108,9 @@ handle_using_decl (tree using_decl, tree t)
   tree flist = NULL_TREE;
   tree old_value;
 
+  if (ctype == error_mark_node)
+    return;
+
   binfo = lookup_base (t, ctype, ba_any, NULL);
   if (! binfo)
     {
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9c1fcd25707bec08864805d69e166f4289a50d36..ef4631370751acdfb77a22a54d425468809358da 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-17  Mark Mitchell  <mark@codesourcery.com>
+
+	PR c++/1255
+	* g++.dg/lookup/using7.C: New test.
+	
 2003-06-17  Mark Mitchell  <mark@codesourcery.com>
 
 	PR c++/11105
diff --git a/gcc/testsuite/g++.dg/lookup/using7.C b/gcc/testsuite/g++.dg/lookup/using7.C
new file mode 100644
index 0000000000000000000000000000000000000000..5f187fef56480c01686a0f373973b783a14a8f7e
--- /dev/null
+++ b/gcc/testsuite/g++.dg/lookup/using7.C
@@ -0,0 +1,11 @@
+template <typename T, bool=T::X> struct A
+{
+  int i;
+};
+
+template <typename T> struct B : A<T>
+{
+  using A<T>::i; // { dg-error "" } 
+};
+
+B<void> b; // { dg-error "" }