If you 'list -al <path-invalid-chars>' that gets sent as 'stat -al <path-invalid-chars>' which is fine, but when the server rejects the bad path with a 501 error flash goes ahead and tries to send a port/list for the path again. I'm not sure that's a bad idea, but if that's intended it should be trying pasv/list and not port/list first.
Is there a way to get around list->stat conversion in the very rare cases where I want to do it all manually? I can't think anybody else would, but when testing ioFTPD I sometimes intentionally break things to see what happens