diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9c0afd60faac78cb26acb12ba30de4d6d907f7f0..523fbcbf3c99e069a07e6af8625d82f12e89eda3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2010-04-27  Richard Guenther  <rguenther@suse.de>
+
+	PR middle-end/40561
+	* g++.dg/other/pr40561.C: New testcase.
+
 2010-04-27  Martin Jambor  <mjambor@suse.cz>
 
 	PR middle-end/43812
diff --git a/gcc/testsuite/g++.dg/other/pr40561.C b/gcc/testsuite/g++.dg/other/pr40561.C
new file mode 100644
index 0000000000000000000000000000000000000000..c94dfa4bd62526a2649e272c6b8f21bc82dcad0a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/pr40561.C
@@ -0,0 +1,38 @@
+// { dg-do compile }
+
+#include <set>
+
+class SyAccess;
+class VamsBase 
+{
+	public:
+	virtual ~VamsBase(void);
+};
+
+class VamsFnct : public VamsBase 
+{	
+	public:
+	~VamsFnct(void);
+	std::set<SyAccess*> getNullDependencies(void) const
+	{	return std::set<SyAccess*>();
+	}
+};
+
+class VamsFnctSystem:public VamsFnct
+{	public:
+	VamsFnctSystem(
+		const bool _bPassDependencies);
+};
+
+template< std::set<SyAccess*> (VamsFnct::*__GET_DEP__)(void) const >
+class VamsSystemFunction:public VamsFnctSystem
+{	public:
+	VamsSystemFunction()
+	    :VamsFnctSystem(
+		__GET_DEP__ != &VamsFnct::getNullDependencies
+		)
+	{
+	}
+};
+
+VamsSystemFunction<&VamsFnct::getNullDependencies> s;