diff --git a/test/data/eps/eps-flat_minimal_xmp-no-pagesetup.eps b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup.eps
new file mode 100644
index 00000000..b6c11b84
--- /dev/null
+++ b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup.eps
@@ -0,0 +1,45 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 5 5 105 105
+%%LanguageLevel: 2
+%ADO_ContainsXMP: MainFirst
+%%Pages: 1
+%Exiv2Version: 001500
+%Exiv2Website: http://www.exiv2.org/
+%%EndComments
+%%Page: 1 1
+%%EndPageComments
+%Exiv2BeginXMP: Before %%EndPageSetup
+/currentdistillerparams where
+{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
+{userdict /Exiv2_pdfmark /cleartomark load put
+ userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
+{userdict /Exiv2_pdfmark /pdfmark load put
+ userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
+[/NamespacePush Exiv2_pdfmark
+[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
+[{Exiv2_metadata_stream} 2 dict begin
+ /Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
+[{Exiv2_metadata_stream}
+ currentfile 0 (% &&end XMP packet marker&&)
+ /SubFileDecode filter Exiv2_metafile_pdfmark
+
+
+
+
+
+
+
+% &&end XMP packet marker&&
+[/Document 1 dict begin
+ /Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
+%Exiv2EndXMP
+10 setlinewidth
+10 10 moveto
+0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
+stroke
+%%PageTrailer
+%Exiv2BeginXMP: After %%PageTrailer
+[/EMC Exiv2_pdfmark
+[/NamespacePop Exiv2_pdfmark
+%Exiv2EndXMP
+%%EOF
diff --git a/test/data/eps/eps-flat_minimal_xmp-no-pagesetup.eps.delxmp b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup.eps.delxmp
new file mode 100644
index 00000000..b9791e59
--- /dev/null
+++ b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup.eps.delxmp
@@ -0,0 +1,18 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 5 5 105 105
+%%LanguageLevel: 2
+%ADO_ContainsXMP: NoMain
+%%Pages: 1
+%Exiv2Version: _Exiv2Version_
+%Exiv2Website: http://www.exiv2.org/
+%%EndComments
+%%Page: 1 1
+%%EndPageComments
+%%BeginPageSetup
+%%EndPageSetup
+10 setlinewidth
+10 10 moveto
+0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
+stroke
+%%PageTrailer
+%%EOF
diff --git a/test/data/eps/eps-flat_minimal_xmp-no-pagesetup.eps.newxmp b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup.eps.newxmp
new file mode 100644
index 00000000..4c7d7212
--- /dev/null
+++ b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup.eps.newxmp
@@ -0,0 +1,70 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 5 5 105 105
+%%LanguageLevel: 2
+%ADO_ContainsXMP: MainFirst
+%%Pages: 1
+%Exiv2Version: _Exiv2Version_
+%Exiv2Website: http://www.exiv2.org/
+%%EndComments
+%%Page: 1 1
+%%EndPageComments
+%Exiv2BeginXMP: Before %%EndPageSetup
+/currentdistillerparams where
+{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
+{userdict /Exiv2_pdfmark /cleartomark load put
+ userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
+{userdict /Exiv2_pdfmark /pdfmark load put
+ userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
+[/NamespacePush Exiv2_pdfmark
+[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
+[{Exiv2_metadata_stream} 2 dict begin
+ /Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
+[{Exiv2_metadata_stream}
+ currentfile 0 (% &&end XMP packet marker&&)
+ /SubFileDecode filter Exiv2_metafile_pdfmark
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+% &&end XMP packet marker&&
+[/Document 1 dict begin
+ /Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
+%Exiv2EndXMP
+%%BeginPageSetup
+%%EndPageSetup
+10 setlinewidth
+10 10 moveto
+0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
+stroke
+%%PageTrailer
+%Exiv2BeginXMP: After %%PageTrailer
+[/EMC Exiv2_pdfmark
+[/NamespacePop Exiv2_pdfmark
+%Exiv2EndXMP
+%%EOF
diff --git a/test/data/eps/eps-flat_minimal_xmp-no-pagesetup.xmp b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup.xmp
new file mode 100644
index 00000000..77e69ed2
--- /dev/null
+++ b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup.xmp
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/test/data/eps/eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps
new file mode 100644
index 00000000..d5344d6e
--- /dev/null
+++ b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps
@@ -0,0 +1,44 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 5 5 105 105
+%%LanguageLevel: 2
+%ADO_ContainsXMP: MainFirst
+%%Pages: 1
+%Exiv2Version: 001500
+%Exiv2Website: http://www.exiv2.org/
+%%EndComments
+%%Page: 1 1
+%Exiv2BeginXMP: Before %%EndPageSetup
+/currentdistillerparams where
+{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
+{userdict /Exiv2_pdfmark /cleartomark load put
+ userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
+{userdict /Exiv2_pdfmark /pdfmark load put
+ userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
+[/NamespacePush Exiv2_pdfmark
+[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
+[{Exiv2_metadata_stream} 2 dict begin
+ /Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
+[{Exiv2_metadata_stream}
+ currentfile 0 (% &&non-standard end XMP packet marker&&)
+ /SubFileDecode filter Exiv2_metafile_pdfmark
+
+
+
+
+
+
+
+% &&non-standard end XMP packet marker&&
+[/Document 1 dict begin
+ /Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
+%Exiv2EndXMP
+10 setlinewidth
+10 10 moveto
+0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
+stroke
+%%PageTrailer
+%Exiv2BeginXMP: After %%PageTrailer
+[/EMC Exiv2_pdfmark
+[/NamespacePop Exiv2_pdfmark
+%Exiv2EndXMP
+%%EOF
diff --git a/test/data/eps/eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps.delxmp b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps.delxmp
new file mode 100644
index 00000000..e961d51f
--- /dev/null
+++ b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps.delxmp
@@ -0,0 +1,17 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 5 5 105 105
+%%LanguageLevel: 2
+%ADO_ContainsXMP: NoMain
+%%Pages: 1
+%Exiv2Version: _Exiv2Version_
+%Exiv2Website: http://www.exiv2.org/
+%%EndComments
+%%Page: 1 1
+%%BeginPageSetup
+%%EndPageSetup
+10 setlinewidth
+10 10 moveto
+0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
+stroke
+%%PageTrailer
+%%EOF
diff --git a/test/data/eps/eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps.newxmp b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps.newxmp
new file mode 100644
index 00000000..c8b588fd
--- /dev/null
+++ b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps.newxmp
@@ -0,0 +1,69 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 5 5 105 105
+%%LanguageLevel: 2
+%ADO_ContainsXMP: MainFirst
+%%Pages: 1
+%Exiv2Version: _Exiv2Version_
+%Exiv2Website: http://www.exiv2.org/
+%%EndComments
+%%Page: 1 1
+%%BeginPageSetup
+%Exiv2BeginXMP: Before %%EndPageSetup
+/currentdistillerparams where
+{pop currentdistillerparams /CoreDistVersion get 5000 lt} {true} ifelse
+{userdict /Exiv2_pdfmark /cleartomark load put
+ userdict /Exiv2_metafile_pdfmark {flushfile cleartomark} bind put}
+{userdict /Exiv2_pdfmark /pdfmark load put
+ userdict /Exiv2_metafile_pdfmark {/PUT pdfmark} bind put} ifelse
+[/NamespacePush Exiv2_pdfmark
+[/_objdef {Exiv2_metadata_stream} /type /stream /OBJ Exiv2_pdfmark
+[{Exiv2_metadata_stream} 2 dict begin
+ /Type /Metadata def /Subtype /XML def currentdict end /PUT Exiv2_pdfmark
+[{Exiv2_metadata_stream}
+ currentfile 0 (% &&end XMP packet marker&&)
+ /SubFileDecode filter Exiv2_metafile_pdfmark
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+% &&end XMP packet marker&&
+[/Document 1 dict begin
+ /Metadata {Exiv2_metadata_stream} def currentdict end /BDC Exiv2_pdfmark
+%Exiv2EndXMP
+%%EndPageSetup
+10 setlinewidth
+10 10 moveto
+0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
+stroke
+%%PageTrailer
+%Exiv2BeginXMP: After %%PageTrailer
+[/EMC Exiv2_pdfmark
+[/NamespacePop Exiv2_pdfmark
+%Exiv2EndXMP
+%%EOF
diff --git a/test/data/eps/eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.xmp b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.xmp
new file mode 100644
index 00000000..77e69ed2
--- /dev/null
+++ b/test/data/eps/eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.xmp
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/test/data/eps/eps-test.out b/test/data/eps/eps-test.out
index bbfbf7f0..839b5803 100644
--- a/test/data/eps/eps-test.out
+++ b/test/data/eps/eps-test.out
@@ -680,6 +680,58 @@ Exit code: 0
Command: exiv2 -f -ex eps-flat_minimal_xmp-in-page_exiftool-8.56.eps
Exit code: 0
+-----> eps-flat_minimal_xmp-no-pagesetup.eps <-----
+
+Command: exiv2 -u -pa eps-flat_minimal_xmp-no-pagesetup.eps
+Xmp.test.test XmpText 4 TEST
+Exit code: 253
+
+Command: exiv2 -dx eps-flat_minimal_xmp-no-pagesetup.eps
+Exit code: 0
+
+Command: exiv2 -f -ex eps-flat_minimal_xmp-no-pagesetup.eps
+Exit code: 0
+
+Restore: eps-flat_minimal_xmp-no-pagesetup.eps
+
+Command: exiv2 -f -eX eps-flat_minimal_xmp-no-pagesetup.eps
+Exit code: 0
+
+Command: exiv2 -ix eps-flat_minimal_xmp-no-pagesetup.eps
+Exit code: 0
+
+Command: (2) exiv2 -ix eps-flat_minimal_xmp-no-pagesetup.eps
+Exit code: 0
+
+Command: exiv2 -f -ex eps-flat_minimal_xmp-no-pagesetup.eps
+Exit code: 0
+
+-----> eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps <-----
+
+Command: exiv2 -u -pa eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps
+Xmp.test.test XmpText 4 TEST
+Exit code: 253
+
+Command: exiv2 -dx eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps
+Exit code: 0
+
+Command: exiv2 -f -ex eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps
+Exit code: 0
+
+Restore: eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps
+
+Command: exiv2 -f -eX eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps
+Exit code: 0
+
+Command: exiv2 -ix eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps
+Exit code: 0
+
+Command: (2) exiv2 -ix eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps
+Exit code: 0
+
+Command: exiv2 -f -ex eps-flat_minimal_xmp-no-pagesetup_non-flexible-embedding.eps
+Exit code: 0
+
-----> eps-flat_minimal_xmp-readonly.eps <-----
Command: exiv2 -u -pa eps-flat_minimal_xmp-readonly.eps