diff --git a/compiler/GHC/Parser.y b/compiler/GHC/Parser.y
index 82386c34d47126098da98974b1ef7b612110fda4..05ef3b6236c4b9a23d6236338c7dbc353a130c80 100644
--- a/compiler/GHC/Parser.y
+++ b/compiler/GHC/Parser.y
@@ -1012,6 +1012,10 @@ signature :: { Located (HsModule GhcPs) }
                     ) }
 
 module :: { Located (HsModule GhcPs) }
+       : module_no_catch { $1 }
+       | module_no_catch catch { $1 }
+
+module_no_catch :: { Located (HsModule GhcPs) }
        : 'module' modid maybe_warning_pragma maybeexports 'where' body
              {% fileSrcSpan >>= \ loc ->
                 acsFinal (\cs eof -> (L loc (HsModule (XModulePs