diff --git a/interpreter/cling/test/ErrorRecovery/SubsequentDecls.C b/interpreter/cling/test/ErrorRecovery/SubsequentDecls.C
index 0a9612fbd0ee928f260fe22c74e02e5e8c80cd20..7fce9d811f573cce217984bde0e623619ad48b11 100644
--- a/interpreter/cling/test/ErrorRecovery/SubsequentDecls.C
+++ b/interpreter/cling/test/ErrorRecovery/SubsequentDecls.C
@@ -4,6 +4,7 @@
 .rawInput 1
 extern int __my_i;
 template<typename T> T TemplatedF(T t);
+template<> double TemplatedF(double); // forward declare TemplatedF
 int OverloadedF(int i);
 float OverloadedF(float f){ return f + 100.111f;}
 double OverloadedF(double d){ return d + 10.11f; };
@@ -15,6 +16,8 @@ namespace test { int y = 0; }
 .compareState "testSubsequentDecls"
 // CHECK-NOT: Differences
 
+TemplatedF((int)2) // expected-diagnostics{{C++ requires a type specifier for all declarations}} expected-diagnostics{{expected ';' after top level declarator}}
+
 .rawInput 1
 template<> int TemplatedF(int i) { return i + 100; }
 int OverloadedF(int i) { return i + 100;}
@@ -27,4 +30,6 @@ OverloadedF(__my_i)
 TemplatedF(__my_i) 
 // CHECK: (int) 110
 
+TemplatedF((double)3.14) 
+// CHECK: use of undefined symbol '_Z10TemplatedFIdET_S0_'
 .q
diff --git a/interpreter/cling/test/ErrorRecovery/SubsequentDecls.h b/interpreter/cling/test/ErrorRecovery/SubsequentDecls.h
index b3b68dc6470688087be661ce51a24acd7311114c..1a2b51822ff941a1045a3ee3d43c016bec0caf7e 100644
--- a/interpreter/cling/test/ErrorRecovery/SubsequentDecls.h
+++ b/interpreter/cling/test/ErrorRecovery/SubsequentDecls.h
@@ -3,6 +3,7 @@
 
 // Template specializations
 template<> int TemplatedF(int t){return t + 10;}
+template<> double TemplatedF(double t){return t + 3.14;}
 
 // Aliases
 typedef struct A AStruct;