For PR #88 forceAutoEscape: Postpone failing due to non-escaping output format until we are past the #ftl header
diff --git a/src/main/javacc/FTL.jj b/src/main/javacc/FTL.jj
index 55955c5..bad64ca 100644
--- a/src/main/javacc/FTL.jj
+++ b/src/main/javacc/FTL.jj
@@ -237,9 +237,6 @@
                 outputFormat = outputFormatFromExt;
             }
         }
-        if (!(outputFormat instanceof MarkupOutputFormat) && autoEscapingPolicy == Configuration.FORCE_AUTO_ESCAPING_POLICY) {
-            throw new IllegalArgumentException(forcedAutoEscapingPolicyExceptionMessage(outputFormat));
-        }
         recalculateAutoEscapingField();
 
         token_source.setParser(this);
@@ -4754,6 +4751,11 @@
         LOOKAHEAD([<STATIC_TEXT_WS>](<TRIVIAL_FTL_HEADER>|<FTL_HEADER>))
         HeaderElement()
     ]
+    {
+        if (!(outputFormat instanceof MarkupOutputFormat) && autoEscapingPolicy == Configuration.FORCE_AUTO_ESCAPING_POLICY) {
+            throw new IllegalArgumentException(forcedAutoEscapingPolicyExceptionMessage(outputFormat));
+        }
+    }
     children = MixedContentElements()
     <EOF>
     {
diff --git a/src/test/java/freemarker/core/OutputFormatTest.java b/src/test/java/freemarker/core/OutputFormatTest.java
index 03672c7..a9de869 100644
--- a/src/test/java/freemarker/core/OutputFormatTest.java
+++ b/src/test/java/freemarker/core/OutputFormatTest.java
@@ -868,9 +868,8 @@
         cfg.setOutputFormat(DummyOutputFormat.INSTANCE);
         assertOutput(commonFTL, esced);
 
-        // TODO Should work:
-        // cfg.setOutputFormat(PlainTextOutputFormat.INSTANCE);
-        // assertOutput("<#ftl outputFormat='seldomEscaped'>" + commonFTL, esced);
+        cfg.setOutputFormat(PlainTextOutputFormat.INSTANCE);
+        assertOutput("<#ftl outputFormat='seldomEscaped'>" + commonFTL, esced);
 
         cfg.setOutputFormat(HTMLOutputFormat.INSTANCE);
         assertOutput("<#outputFormat 'seldomEscaped'>" + commonFTL + "</#outputFormat>", esced);