diff --git a/archive.go b/archive.go
index <HASH>..<HASH> 100644
--- a/archive.go
+++ b/archive.go
@@ -214,6 +214,10 @@ func (v *volume) next() (*fileBlockHeader, error) {
 }
 
 func (v *volume) Close() error {
+	// may be nil if os.Open fails in next()
+	if v.f == nil {
+		return nil
+	}
 	return v.f.Close()
 }
check for nil file handle when closing volume