--- /home/martin/bin/parallel 2015-06-26 14:31:03.696914185 +0900 +++ parallel-mcf 2015-06-26 15:30:16.422813477 +0900 @@ -318,7 +318,9 @@ my $header = find_header(\$buf,$in); while(1) { my $anything_written = 0; - if(not read($in,substr($buf,length $buf,0),$blocksize)) { + my $buflen = length $buf; + my $readsize = ($blocksize > $buflen) ? $blocksize-$buflen : $blocksize; + if(not read($in,substr($buf,$buflen,0),$readsize)) { # End-of-file $chunk_number != 1 and last; # Force the while-loop once if everything was read by header reading