diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 0be692bd520884d54e2c69e35ef4079973dab714..c478e94b7ae97da60b22f9781ec832c35c8c54c4 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2012-12-09  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* testsuite/lib/libstdc++.exp (dg-test): Unset testname_with_flags
+	after running the test.
+
 2012-12-04  Andreas Schwab  <schwab@linux-m68k.org>
 
 	* include/Makefile.am (${host_builddir}/c++config.h): Replace
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index b3be88fc5e32986a01378d9f28a31ca486688f37..10b973814519ffd766b1be632e53eda692858812 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -389,15 +389,22 @@ if { [info procs saved-dg-test] == [list] } {
     proc dg-test { args } {
 	global additional_prunes
 	global errorInfo
+	global testname_with_flags
 
 	if { [ catch { eval saved-dg-test $args } errmsg ] } {
 	    set saved_info $errorInfo
 	    set additional_prunes ""
+	    if [info exists testname_with_flags] {
+		unset testname_with_flags
+	    }
 	    unset_timeout_vars
 	    error $errmsg $saved_info
 	}
 	set additional_prunes ""
 	unset_timeout_vars
+	if [info exists testname_with_flags] {
+	    unset testname_with_flags
+	}
     }
 }