diff --git a/compiler/GHC/Parser.y b/compiler/GHC/Parser.y
index 050c696a0a475c9ea3893560d6ac72a641d9f62a..f3f38f3cea8b614eaf149b8be7d3de3d7929bbd0 100644
--- a/compiler/GHC/Parser.y
+++ b/compiler/GHC/Parser.y
@@ -3444,7 +3444,7 @@ stmts :: { forall b. DisambECP b => PV (Located (OrdList AddEpAnn,[LStmt GhcPs (
                              [] -> return (sLZ $1 $> ((fst $ unLoc $1) `snocOL` (mj AnnSemi $2),snd $ unLoc $1))
                              (h:t) -> do
                                { h' <- addTrailingSemiA h (gl $2)
-                               ; return $ sL1 $1 (fst $ unLoc $1,h':t) }}
+                               ; return $ sLZ $1 $> (fst $ unLoc $1,h':t) }}
         | stmt                   { $1 >>= \ $1 ->
                                    return $ sL1 $1 (nilOL,[$1]) }
         | {- empty -}            { return $ noLoc (nilOL,[]) }
diff --git a/testsuite/tests/parser/should_compile/DumpSemis.stderr b/testsuite/tests/parser/should_compile/DumpSemis.stderr
index 12af0facf54d57dd49d26142eb5a6d9a3a1f2593..015d64b51af1549f832d01e9da9029fa404f203b 100644
--- a/testsuite/tests/parser/should_compile/DumpSemis.stderr
+++ b/testsuite/tests/parser/should_compile/DumpSemis.stderr
@@ -856,7 +856,7 @@
                    (EpaSpan { DumpSemis.hs:22:10-30 })
                    (AnnList
                     (Just
-                     (EpaSpan { DumpSemis.hs:22:12-25 }))
+                     (EpaSpan { DumpSemis.hs:22:12-28 }))
                     (Just
                      (AddEpAnn AnnOpenC (EpaSpan { DumpSemis.hs:22:10 })))
                     (Just
diff --git a/testsuite/tests/printer/Makefile b/testsuite/tests/printer/Makefile
index 8b9e56cbe6d6c2f59fa00f437b5de5d5ed8802c8..de55d7ae6ecbc1e7848950ccb816ff6e0485eccd 100644
--- a/testsuite/tests/printer/Makefile
+++ b/testsuite/tests/printer/Makefile
@@ -851,3 +851,8 @@ DataDeclShort:
 Test24749:
 	$(CHECK_PPR)   $(LIBDIR) Test24749.hs
 	$(CHECK_EXACT) $(LIBDIR) Test24749.hs
+
+.PHONY: Test24754
+Test24754:
+	$(CHECK_PPR)   $(LIBDIR) Test24754.hs
+	$(CHECK_EXACT) $(LIBDIR) Test24754.hs
diff --git a/testsuite/tests/printer/Test24754.hs b/testsuite/tests/printer/Test24754.hs
new file mode 100644
index 0000000000000000000000000000000000000000..14c02e2a7f2bfcc1f48b431421f36778fcb011cc
--- /dev/null
+++ b/testsuite/tests/printer/Test24754.hs
@@ -0,0 +1,4 @@
+module Test24754 where
+
+eh1  =  try (do return r;) <|> (do
+                return r)
diff --git a/testsuite/tests/printer/all.T b/testsuite/tests/printer/all.T
index ce076aaa8744dbcb133c4e5a7810ec76b3ca2e3d..d6ff2ff196f14643c164bf0271f8652b4e0732c5 100644
--- a/testsuite/tests/printer/all.T
+++ b/testsuite/tests/printer/all.T
@@ -203,3 +203,4 @@ test('MatchPatComments', [ignore_stderr, req_ppr_deps], makefile_test, ['MatchPa
 test('Test24748', [ignore_stderr, req_ppr_deps], makefile_test, ['Test24748'])
 test('DataDeclShort', [ignore_stderr, req_ppr_deps], makefile_test, ['DataDeclShort'])
 test('Test24749', [ignore_stderr, req_ppr_deps], makefile_test, ['Test24749'])
+test('Test24754', [ignore_stderr, req_ppr_deps], makefile_test, ['Test24754'])