diff --git a/muppet/puppet/format/parser.py b/muppet/puppet/format/parser.py
index 828e03b75860cdddb870f9394845c56c83c7686b..ad28c5299df409f2eaee0f7b76dae73666c603e0 100644
--- a/muppet/puppet/format/parser.py
+++ b/muppet/puppet/format/parser.py
@@ -141,7 +141,12 @@ class rich_char(ParseDirective):
             case '$':
                 return parser.get(s('$') | r'\$')
             case _:
-                return parser.get(self.c)
+                # Literal linebreaks can apparently be escaped inside
+                # "rich" strings (thankfully not inside 'plain' strings).
+                try:
+                    return parser.get(s("\\\n") & self.c)
+                except ParseError:
+                    return parser.get(self.c)
 
 
 class ParserFormatter(Serializer[ParseDirective]):