This is a quirk in the way the command line passes parameters.
less than 32 characters are passed as 32 characters, which is ok, because the CL program receives pointers to the values and parses out what it expects.
more than 32 characters, it only passes exactly what is passed.
the problem becomes when the CL program expects to get more than 32 characters, it will always parse out the 50 (in this case), but if less than 32 characters were passed, the 33rd character will start the next parameter, and so the parsing gets garbage data. If more than 32, but less than the full characters are passed, the overlay will occur after the last character.
one work around is to create a command front end for the CL and instead of calling the program, run the command. The command interface will properly pass the parameters to the CL program