diff --git a/ghc/tests/reader/should_compile/read027.hs b/ghc/tests/reader/should_compile/read027.hs
new file mode 100644
index 0000000000000000000000000000000000000000..c793ca720450a367cf2ad244f8f9ef4df8099be4
--- /dev/null
+++ b/ghc/tests/reader/should_compile/read027.hs
@@ -0,0 +1,14 @@
+module ShouldCompile where
+
+infix 5 |- 
+infix 9 :=
+
+data Equal = Char := Int
+
+-- fails in GHC 4.04, due to not doing fixity resolution on the lhs
+-- before deciding which is the function symbol.
+
+(|-) :: Int -> Equal -> Bool
+0 |- x:=y = 1 |- x:=y      -- XXX fails here
+2 |- (x:=y) = 0 |- x:=y
+_ |-  _     = False