diff --git a/ghc/tests/typecheck/should_run/tcrun005.hs b/ghc/tests/typecheck/should_run/tcrun005.hs
new file mode 100644
index 0000000000000000000000000000000000000000..2c315725ef73e04ea123c7e11294fd4bf59e139d
--- /dev/null
+++ b/ghc/tests/typecheck/should_run/tcrun005.hs
@@ -0,0 +1,25 @@
+-- !!! Dfun naming bug
+
+module Main where
+
+
+  data TT  = TT
+  data TTT = TTT
+
+  class CC  a where
+	op_cc :: a -> a
+	
+  class CCT a where
+	op_cct :: a -> a
+
+  -- These two instances should get different dfun names!
+  -- In GHC 4.04 they both got $fCCTTT
+
+  instance CC TTT where
+	op_cc = id
+
+  instance CCT TT where
+	op_cct = id
+
+  main = case op_cc TTT of
+	   TTT -> print "ok"
diff --git a/ghc/tests/typecheck/should_run/tcrun005.stdout b/ghc/tests/typecheck/should_run/tcrun005.stdout
new file mode 100644
index 0000000000000000000000000000000000000000..52c33a57c76fbc5dcd2fcd29a0a87afc97a02fee
--- /dev/null
+++ b/ghc/tests/typecheck/should_run/tcrun005.stdout
@@ -0,0 +1 @@
+"ok"