diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 98a2270875c26a69b2d7cd93a4be3365ceeedc93..5746f24f7a1e9519ec2c21d2c0f3439369cdf97d 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2009-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR c++/28293
+	* decl.c (grokfield): Check for explicit template argument lists.
+
 2009-09-09  Jack Howarth  <howarth@bromo.med.uc.edu>
 
 	PR bootstrap/41180
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9d6b8235f8d2e8902a1d12c021c4a9d2ee7b9227..8e2266b6024ce4066305373738081a4e68708a54 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,4 +1,9 @@
-2009-09-09 Uros Bizjak <ubizjak@gmail.com>
+2009-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	PR c++/28293
+	* g++.dg/template/crash91.C: New.
+
+2009-09-09  Uros Bizjak <ubizjak@gmail.com>
 
 	PR rtl-optimization/39779
 	* gcc.dg/pr39979.c: New test.
diff --git a/gcc/testsuite/g++.dg/template/crash91.C b/gcc/testsuite/g++.dg/template/crash91.C
new file mode 100644
index 0000000000000000000000000000000000000000..39575cd9f272d817951b0361bd5d93b2bacb70db
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/crash91.C
@@ -0,0 +1,8 @@
+// PR c++/28293
+
+template<int> void foo();
+
+struct A
+{
+  typedef void foo<0>(); // { dg-error "explicit template argument list not allowed" } 
+};