diff --git a/t/script/archive_tar.t b/t/script/archive_tar.t
index 1dfd195..8e517c2 100644
--- a/t/script/archive_tar.t
+++ b/t/script/archive_tar.t
@@ -13,6 +13,7 @@
 use Data::Dumper;
 use KorAP::XML::Archive;
 use utf8;
+use Archive::Tar;
 
 if ($ENV{SKIP_SCRIPT}) {
   plan skip_all => 'Skip script tests';
@@ -70,7 +71,79 @@
 like($combined, qr!Writing to file .+?\.tar!, 'Write out');
 like($combined, qr!Wrote to tar archive!, 'Write out');
 
+# Now test with multiple jobs
+$call = join(
+  ' ',
+  'perl', $script,
+  'archive',
+  '--input' => $input,  # Use the same input as the first test
+  '--output' => $output . '_multi.tar',
+  '--cache' => $cache,
+  '-t' => 'Base#tokens_aggr',
+  '-m' => 'Sgbr',  # Add meta type parameter
+  '--to-tar',
+  '--gzip',  # Add gzip parameter
+  '--jobs' => 3  # Use 3 jobs to test multiple tar files
+);
 
+# Test with multiple jobs
+$combined = combined_from( sub { system($call) });
+
+like($combined, qr!Writing to file .+?\.tar!, 'Write out');
+like($combined, qr!Merging 3 temporary tar files!, 'Merging correct number of temp files');
+like($combined, qr!Wrote to tar archive!, 'Write out');
+
+# Read the merged tar with --ignore-zeros
+my $tar_file = $output . '_multi.tar';
+ok(-f $tar_file, 'Multi-job tar file exists');
+
+# Use Archive::Tar to read the merged tar
+my $merged_tar = Archive::Tar->new;
+ok($merged_tar->read($tar_file, 1, {ignore_zeros => 1}), 'Can read merged tar with ignore_zeros');
+
+# Verify expected files are present
+ok($merged_tar->contains_file('TEST-BSP-1.json.gz'), 'Expected file found in merged tar');
+
+# Check the content is valid
+my $content = $merged_tar->get_content('TEST-BSP-1.json.gz');
+ok(length($content) > 0, 'File content is not empty');
+is(scalar($merged_tar->list_files()), 1, 'One file in tar');
+
+# Test with multiple jobs and multiple input files
+$call = join(
+  ' ',
+  'perl', $script,
+  'archive',
+  '--input' => 't/corpus/artificial',  # Use artificial test corpus
+  '--output' => $output . '_multi_files.tar',
+  '--cache' => $cache,
+  '-t' => 'Base#sentences',  # Use sentences.xml
+  '-m' => 'Sgbr',
+  '--to-tar',
+  '--gzip',
+  '--jobs' => 3
+);
+
+# Run multi-file test
+$combined = combined_from( sub { system($call) });
+
+like($combined, qr!Writing to file .+?\.tar!, 'Write out for multi-file');
+like($combined, qr!Merging 3 temporary tar files!, 'Merging correct number of temp files');
+like($combined, qr!Wrote to tar archive!, 'Write out');
+
+# Read the merged tar with --ignore-zeros
+my $multi_tar_file = $output . '_multi_files.tar';
+ok(-f $multi_tar_file, 'Multi-file tar exists');
+
+# Use Archive::Tar to read the merged tar
+my $multi_merged_tar = Archive::Tar->new;
+ok($multi_merged_tar->read($multi_tar_file, 1, {ignore_zeros => 1}), 'Can read multi-file tar with ignore_zeros');
+
+# Check that the file is in the tar
+my @files = $multi_merged_tar->list_files();
+my $found_files = join("\n", @files);
+
+like($found_files, qr/artificial\.json\.gz/, 'Contains artificial document');
 
 done_testing;
 __END__
