diff --git a/t/corpus/artificial/header.xml b/t/corpus/artificial/header.xml
index 589e75e..10e14f8 100644
--- a/t/corpus/artificial/header.xml
+++ b/t/corpus/artificial/header.xml
@@ -4,7 +4,7 @@
 <idsHeader type="text" pattern="text" status="new" version="1.1" TEIform="teiHeader">
   <fileDesc>
     <titleStmt>
-      <textSigle>ART/ABC.0001</textSigle>
+      <textSigle>ART/ABC.00001</textSigle>
       <t.title assemblage="regular"/>
     </titleStmt>
     <publicationStmt>
diff --git a/t/tar_builder.t b/t/tar_builder.t
new file mode 100644
index 0000000..9413440
--- /dev/null
+++ b/t/tar_builder.t
@@ -0,0 +1,87 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+
+use File::Basename 'dirname';
+use File::Spec::Functions qw/catfile catdir/;
+use File::Temp qw/tempdir tempfile/;
+
+use_ok('Archive::Tar');
+
+my ($out_tar, $out_tar_fn) = tempfile();
+
+use_ok('KorAP::XML::TarBuilder');
+
+ok(my $tar = KorAP::XML::TarBuilder->new($out_tar), 'Create new tar');
+
+is(ref $tar, 'KorAP::XML::TarBuilder');
+
+my $file = catfile(dirname(__FILE__), 'corpus','artificial', 'data.xml');
+ok($tar->archive_as($file, 'example1.xml'));
+
+$file = catfile(dirname(__FILE__), 'corpus','artificial', 'header.xml');
+ok($tar->archive_as($file, 'example2.xml'));
+
+ok($tar->finish, 'Finish tar');
+
+use_ok('Archive::Tar');
+
+my $tar_read = Archive::Tar->new($out_tar_fn);
+
+ok($tar_read->contains_file('example1.xml'), 'File exists');
+ok($tar_read->contains_file('example2.xml'), 'File exists');
+
+my $content = $tar_read->get_content('example1.xml');
+like($content, qr!ART_ABC\.00001!, 'Content is correct');
+
+$content = $tar_read->get_content('example2.xml');
+like($content, qr!ART\/ABC\.00001!, 'Content is correct');
+
+
+
+
+# Now test for equivalence to Archive::Tar::Builder
+if (eval("use Archive::Tar::Builder; 1;")) {
+
+  use_ok('Archive::Tar::Builder');
+
+  # Reset
+  ($out_tar, $out_tar_fn) = tempfile();
+
+  $tar = Archive::Tar::Builder->new(
+    ignore_errors => 1
+  );
+
+  # Set handle
+  $tar->set_handle($out_tar);
+
+  is(ref $tar, 'Archive::Tar::Builder');
+
+  $file = catfile(dirname(__FILE__), 'corpus','artificial', 'data.xml');
+  ok($tar->archive_as($file, 'example1.xml'));
+
+  $file = catfile(dirname(__FILE__), 'corpus','artificial', 'header.xml');
+  ok($tar->archive_as($file, 'example2.xml'));
+
+  ok($tar->finish, 'Finish tar');
+
+  use_ok('Archive::Tar');
+
+  $tar_read = Archive::Tar->new($out_tar_fn);
+
+  ok($tar_read->contains_file('example1.xml'), 'File exists');
+  ok($tar_read->contains_file('example2.xml'), 'File exists');
+
+  $content = $tar_read->get_content('example1.xml');
+  like($content, qr!ART_ABC\.00001!, 'Content is correct');
+
+  $content = $tar_read->get_content('example2.xml');
+  like($content, qr!ART\/ABC\.00001!, 'Content is correct');
+}
+else {
+  diag 'Archive::Tar::Builder not installed.';
+};
+
+done_testing;
+
