diff --git a/ghc/tests/typecheck/should_compile/tc102.hs b/ghc/tests/typecheck/should_compile/tc102.hs
new file mode 100644
index 0000000000000000000000000000000000000000..cf07b6294ae10baaaf56136c117dd80276bc0891
--- /dev/null
+++ b/ghc/tests/typecheck/should_compile/tc102.hs
@@ -0,0 +1,12 @@
+{-# OPTIONS -fglasgow-exts #-}
+
+-- !!! Caused ghc-4.04proto to report a bogus type error
+-- !!! (as reported by Keith)
+
+-- The type error arose from a mistake in tcMatches.tc_match
+
+-- Involves pattern type signatures
+
+module ShouldCompile where
+
+p = let y = p in \ (x::a) -> x
diff --git a/ghc/tests/typecheck/should_compile/tc102.stderr b/ghc/tests/typecheck/should_compile/tc102.stderr
new file mode 100644
index 0000000000000000000000000000000000000000..23a5c218b50ec4034c7e2c95ae4a456e05bbb8c8
--- /dev/null
+++ b/ghc/tests/typecheck/should_compile/tc102.stderr
@@ -0,0 +1,3 @@
+ghc: module version changed to 1; reason: no old .hi file
+__export ShouldCompile p;
+1 p :: __forall [a] => a -> a ;