updated for version 7.1-305
diff --git a/runtime/autoload/gzip.vim b/runtime/autoload/gzip.vim
index f7c97a6..1ad29ea 100644
--- a/runtime/autoload/gzip.vim
+++ b/runtime/autoload/gzip.vim
@@ -1,6 +1,6 @@
 " Vim autoload file for editing compressed files.
 " Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2007 May 10
+" Last Change: 2008 May 29
 
 " These functions are used by the gzip plugin.
 
@@ -73,8 +73,15 @@
   let empty = line("'[") == 1 && line("']") == line("$")
   let tmp = tempname()
   let tmpe = tmp . "." . expand("<afile>:e")
+  if exists('*fnameescape')
+    let tmp_esc = fnameescape(tmp)
+    let tmpe_esc = fnameescape(tmpe)
+  else
+    let tmp_esc = escape(tmp, ' ')
+    let tmpe_esc = escape(tmpe, ' ')
+  endif
   " write the just read lines to a temp file "'[,']w tmp.gz"
-  execute "silent '[,']w " . escape(tmpe, ' ')
+  execute "silent '[,']w " . tmpe_esc
   " uncompress the temp file: call system("gzip -dn tmp.gz")
   call system(a:cmd . " " . s:escape(tmpe))
   if !filereadable(tmp)
@@ -95,12 +102,12 @@
     setlocal nobin
     if exists(":lockmarks")
       if empty
-	execute "silent lockmarks " . l . "r ++edit " . tmp
+	execute "silent lockmarks " . l . "r ++edit " . tmp_esc
       else
-	execute "silent lockmarks " . l . "r " . tmp
+	execute "silent lockmarks " . l . "r " . tmp_esc
       endif
     else
-      execute "silent " . l . "r " . tmp
+      execute "silent " . l . "r " . tmp_esc
     endif
 
     " if buffer became empty, delete trailing blank line
@@ -110,8 +117,8 @@
     endif
     " delete the temp file and the used buffers
     call delete(tmp)
-    silent! exe "bwipe " . tmp
-    silent! exe "bwipe " . tmpe
+    silent! exe "bwipe " . tmp_esc
+    silent! exe "bwipe " . tmpe_esc
   endif
 
   " Restore saved option values.
@@ -124,10 +131,15 @@
 
   " When uncompressed the whole buffer, do autocommands
   if ok && empty
-    if &verbose >= 8
-      execute "doau BufReadPost " . expand("%:r")
+    if exists('*fnameescape')
+      let fname = fnameescape(expand("%:r"))
     else
-      execute "silent! doau BufReadPost " . expand("%:r")
+      let fname = escape(expand("%:r"), " \t\n*?[{`$\\%#'\"|!<")
+    endif
+    if &verbose >= 8
+      execute "doau BufReadPost " . fname
+    else
+      execute "silent! doau BufReadPost " . fname
     endif
   endif
 endfun
diff --git a/src/version.c b/src/version.c
index 79f0455..45021e3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    305,
+/**/
     304,
 /**/
     303,