Many functions, including write-region and insert-file-contents (which are modified in Mule), are replaced by loading ange-ftp.
In Mule, shell-command calls the new write-region and the new insert-file-contents with extra arguments, but another write-region introduced by ange-ftp cannot interpret these extra arguments, so the execution fails.
To fix this problem, Masayuki KUWADA <email@example.com> writes as follows:
Add "&rest coding-system" at the end of parameters of the definition of ange-ftp-write-region and that of ange-ftp-insert-file-contents in ange-ftp.el, and apply the following modifications. (The modified ange-ftp can be shared with Emacs/Nemacs.)
[Caution] The following changes are for an ange-ftp whose version is RCS: $Header: ange-ftp.el,v 4.20 92/08/14 17:04:34 ange Exp $ Other versions may require different modifications. In ange-ftp-write-region, ange-ftp-real-write-region is called twice. Change these occurrences as follows. (ange-ftp-real-write-region start end temp nil visit) $B"-(B (apply 'ange-ftp-real-write-region start end temp nil visit coding-system)
(ange-ftp-real-write-region start end filename append visit) $B"-(B (apply 'ange-ftp-real-write-region start end filename append visit coding-system)
And in ange-ftp-insert-file-contents, ange-ftp-real-insert-file-contents is called twice. Change these occurrences as follows. (ange-ftp-real-insert-file-contents temp visit) $B"-(B (apply 'ange-ftp-real-insert-file-contents temp visit coding-system)
(ange-ftp-real-insert-file-contents filename visit) $B"-(B (apply 'ange-ftp-real-insert-file-contents filename visit coding-system)