diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0b539e6acb397686b62b56ea431812236bf98a67..c17c5eb5b4d4f7c6d08c5ff31970816104c1c208 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-09-20  Danny Smith  <dannysmith@users.sourceforge.net>
+
+	PR target/27650
+	* g++.dg/ext/dllimport12.C: New test.
+
 2006-09-20  Richard Sandiford  <richard@codesourcery.com>
 
 	* gcc.target/mips/mips-ps-type.c: Add -ffinite-math-only.
diff --git a/gcc/testsuite/g++.dg/ext/dllimport12.C b/gcc/testsuite/g++.dg/ext/dllimport12.C
new file mode 100755
index 0000000000000000000000000000000000000000..fe480f21c3a1d521a16f17ae25a0724bd2bb9858
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/dllimport12.C
@@ -0,0 +1,22 @@
+// PR target/27650
+// Don't use dllimport semantics on virtual methods
+// { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+
+// Don't import explicitly virtual method.
+struct base
+{
+  virtual void key_method();
+  __attribute__((dllimport)) virtual ~base();
+};
+
+void base::key_method() {}
+
+
+// Nor an implicitly virtual method.
+struct derived : public base
+{
+  void key_method(); 
+  __attribute__((dllimport)) ~derived();
+};
+
+void derived::key_method() {}