diff --git a/ghc/tests/deriving/should_fail/drvfail001.hs b/ghc/tests/deriving/should_fail/drvfail001.hs
new file mode 100644
index 0000000000000000000000000000000000000000..aa7867f34f63eea142951b0b23f6ae065e1f373b
--- /dev/null
+++ b/ghc/tests/deriving/should_fail/drvfail001.hs
@@ -0,0 +1,25 @@
+{-  From: Ian Bayley 
+    Sent: Tuesday, June 29, 1999 3:39 PM
+    To: hugs-bugs@haskell.org
+    Subject: Show for higher-order nested datatypes
+    
+    
+    Is "deriving Show" meant to work for higher-order nested datatypes ?
+    Hugs hangs when loading in the following file:
+-}
+
+module Foo where
+
+type SqMat a = SM Nil a
+
+data SM f a = ZeroS (f (f a)) | SuccS (SM (Cons f) a) 
+		       deriving Show
+
+
+data Nil a = MkNil deriving Show
+
+data Cons f a = MkCons a (f a)
+		       deriving Show
+
+
+
diff --git a/ghc/tests/deriving/should_fail/drvfail001.stderr b/ghc/tests/deriving/should_fail/drvfail001.stderr
new file mode 100644
index 0000000000000000000000000000000000000000..887f7cd25ed00177fbf80959ac839279a0a2306f
--- /dev/null
+++ b/ghc/tests/deriving/should_fail/drvfail001.stderr
@@ -0,0 +1,7 @@
+
+drvfail001.hs:11:
+    No instance for `Show (f (f a))'
+    When deriving classes for `SM'
+
+Compilation had errors
+