diff --git a/testing/resources/bug_1469.jp2 b/testing/resources/bug_1469.jp2
index 892e8fa..b84a029 100644
--- a/testing/resources/bug_1469.jp2
+++ b/testing/resources/bug_1469.jp2
Binary files differ
diff --git a/testing/tools/fixup_pdf_template.py b/testing/tools/fixup_pdf_template.py
index 5f410f9..da2d608 100755
--- a/testing/tools/fixup_pdf_template.py
+++ b/testing/tools/fixup_pdf_template.py
@@ -166,6 +166,10 @@
     return
   visited_set.add(input_path)
   try:
+    _, file_extension = os.path.splitext(input_path)
+    override_line_endings = (file_extension in EXTENSION_OVERRIDE_LINE_ENDINGS)
+
+    end_of_file_line_ending = False
     with open(input_path, 'rb') as infile:
       for line in infile:
         match = re.match(b'\s*\{\{include\s+(.+)\}\}', line)
@@ -175,12 +179,18 @@
                   os.path.dirname(input_path),
                   match.group(1).decode('utf-8')), output_file, visited_set)
         else:
-          # Replace CRLF with LF line endings for .in files.
-          _, file_extension = os.path.splitext(input_path)
-          if (file_extension in EXTENSION_OVERRIDE_LINE_ENDINGS and
-              line.endswith(WINDOWS_LINE_ENDING)):
-            line = line.removesuffix(WINDOWS_LINE_ENDING) + UNIX_LINE_ENDING
+          if override_line_endings:
+            # Replace CRLF with LF line endings for .in files.
+            if line.endswith(WINDOWS_LINE_ENDING):
+              line = line.removesuffix(WINDOWS_LINE_ENDING) + UNIX_LINE_ENDING
+              end_of_file_line_ending = True
+            else:
+              end_of_file_line_ending = line.endswith(UNIX_LINE_ENDING)
           output_file.write(line)
+
+    # Ensure the include ends on its own line.
+    if not end_of_file_line_ending:
+      output_file.write(UNIX_LINE_ENDING)
   except IOError:
     print('failed to include %s' % input_path, file=sys.stderr)
     raise
