diff --git a/tar/asm/assemble_test.go b/tar/asm/assemble_test.go
index 6cb7850..cfbcca6 100644
--- a/tar/asm/assemble_test.go
+++ b/tar/asm/assemble_test.go
@@ -140,6 +140,7 @@ var testCases = []struct {
 	{"./testdata/iso-8859.tar.gz", "ddafa51cb03c74ec117ab366ee2240d13bba1ec3", 10240},
 	{"./testdata/extranils.tar.gz", "e187b4b3e739deaccc257342f4940f34403dc588", 10648},
 	{"./testdata/notenoughnils.tar.gz", "72f93f41efd95290baa5c174c234f5d4c22ce601", 512},
+	{"./testdata/1c51fc286aa95d9413226599576bafa38490b1e292375c90de095855b64caea6", "946caa03167a8cc707db6ff9785608b652e631dc", 1024},
 }
 
 func TestTarStream(t *testing.T) {
diff --git a/tar/asm/disassemble.go b/tar/asm/disassemble.go
index 009b3f5..33cffba 100644
--- a/tar/asm/disassemble.go
+++ b/tar/asm/disassemble.go
@@ -135,6 +135,9 @@ func NewInputTarStream(r io.Reader, p storage.Packer, fp storage.FilePutter) (io
 				}
 				isEOF = true
 			}
+			if n == 0 {
+				break
+			}
 			_, err = p.AddEntry(storage.Entry{
 				Type:    storage.SegmentType,
 				Payload: paddingChunk[:n],
diff --git a/tar/asm/testdata/1c51fc286aa95d9413226599576bafa38490b1e292375c90de095855b64caea6 b/tar/asm/testdata/1c51fc286aa95d9413226599576bafa38490b1e292375c90de095855b64caea6
new file mode 100644
index 0000000..12243c7
Binary files /dev/null and b/tar/asm/testdata/1c51fc286aa95d9413226599576bafa38490b1e292375c90de095855b64caea6 differ