VC includes a function vc-do-command which invokes a version control command. This function uses call-process and therefore only works for local files. Tramp includes tramp-vc-do-command, a version of vc-do-command which invokes shell-command instead of call-process and therefore works for remote files, too. Tramp then advises vc-do-command to invoke tramp-vc-do-command on Tramp files. Some years ago, we discussed replacing this kludge with an enhanced call-process that also groks file handlers. Richard didn't want to change the behavior of call-process and proposed to provide a new function process-file instead. The attached patch provides the new function process-file, adds Tramp support for this new function, and changes VC to invoke process-file instead of call-process. The patch also removes the ugly advice from Tramp if process-file is available. Beware: the Tramp implementation for process-file is far from complete. It appears to be sufficient for vc-do-command. I intend to improve the implementation somewhat if the general approach is agreeable. What do people think? Kai