diff --git a/plugin/fugitive.vim b/plugin/fugitive.vim
index d8a8ba855b53ca91d37f54dabf03987b89691e81..0f35c853f8784f6b3b65e717845e0a4efe22e2ad 100644
--- a/plugin/fugitive.vim
+++ b/plugin/fugitive.vim
@@ -1621,7 +1621,7 @@ function! s:ReplaceCmd(cmd,...) abort
       endif
     endif
     set noautowrite
-    silent exe '!'.escape(prefix.a:cmd,'%#').' > '.tmp
+    call system(prefix.a:cmd.' > '.tmp)
   finally
     let &autowrite = aw
     if exists('old_index')