Hans,
unless ( $dosish && ! $escapeshell ) {
$cmd =~ s/[^\\]\&/\\\&/io ;
}
The space before the & gets replaced by a \ so that cmd was:
... -int=batchmode &cont-en
and becomes:
... -int=batchmode\&cont-en
Maybe use:
$cmd =~ s/([^\\])\&/$1\\\&/io ;
David