diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 69ea0640397b2b2cba01747aaa8ae9ee2fcee78c..6fd67544e8827d6fd83f90556c94bb3ea79b283c 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+Wed Mar 25 02:01:02 1998  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* decl2.c (constructor_name_full): Handle TYPENAME_TYPE.
+
 Tue Mar 24 16:12:01 1998  Mark Mitchell  <mmitchell@usa.net>
 
 	* tree.c (mapcar): When dealing with a DECL, use it's constant
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 1fbe9a5b8566823c3cdeafeea919a61d5a1b84e5..82fd16a56ae6d9f90fdb6a134b9aeca983eaabdf 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -1958,7 +1958,8 @@ constructor_name_full (thing)
      tree thing;
 {
   if (TREE_CODE (thing) == TEMPLATE_TYPE_PARM
-      || TREE_CODE (thing) == TEMPLATE_TEMPLATE_PARM)
+      || TREE_CODE (thing) == TEMPLATE_TEMPLATE_PARM
+      || TREE_CODE (thing) == TYPENAME_TYPE)
     thing = TYPE_NAME (thing);
   else if (IS_AGGR_TYPE_CODE (TREE_CODE (thing)))
     {