diff --git a/compiler/GHC/Parser.y b/compiler/GHC/Parser.y
index 45aea0f48471913bd34a204d2b3f9e562da18f4e..c25f411f19624ee8e579ec6aa79fbe2afc62a476 100644
--- a/compiler/GHC/Parser.y
+++ b/compiler/GHC/Parser.y
@@ -1011,6 +1011,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