--- a/po/ftplugin/po.vim
+++ b/po/ftplugin/po.vim
@@ -263,14 +263,14 @@
       " Check if the file needs to be saved first.
       exe "if &modified | w | endif"
       if a:action == 'stats'
-         exe "!msgfmt --statistics -o /dev/null %"
+         exe "!msgfmt --statistics -o /dev/null " . shellescape(expand('%'), 1)
       elseif a:action == 'test'
          if exists("g:po_msgfmt_args")
             let args = g:po_msgfmt_args
          else
             let args = '-vv -c'
          endif
-         exe "make! " . args . " -o /dev/null %"
+         exe "make! " . args . " -o /dev/null " . shellescape(expand('%'))
          copen
       endif
    endf
