diff --git a/7.1.305 b/7.1.305
new file mode 100644
index 0000000..52d6b60
--- /dev/null
+++ b/7.1.305
@@ -0,0 +1,155 @@
+To: vim-dev@vim.org
+Subject: Patch 7.1.305
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.1.305
+Problem:    Editing a compressed file with special characters in the name
+	    doesn't work properly.
+Solution:   Escape special characters.
+Files:	    runtime/autoload/gzip.vim
+
+
+*** ../vim-7.1.304/runtime/autoload/gzip.vim	Thu May 10 18:54:26 2007
+--- runtime/autoload/gzip.vim	Thu May 29 22:30:59 2008
+***************
+*** 1,6 ****
+  " Vim autoload file for editing compressed files.
+  " Maintainer: Bram Moolenaar <Bram@vim.org>
+! " Last Change: 2007 May 10
+  
+  " These functions are used by the gzip plugin.
+  
+--- 1,6 ----
+  " Vim autoload file for editing compressed files.
+  " Maintainer: Bram Moolenaar <Bram@vim.org>
+! " Last Change: 2008 May 29
+  
+  " These functions are used by the gzip plugin.
+  
+***************
+*** 73,80 ****
+    let empty = line("'[") == 1 && line("']") == line("$")
+    let tmp = tempname()
+    let tmpe = tmp . "." . expand("<afile>:e")
+    " write the just read lines to a temp file "'[,']w tmp.gz"
+!   execute "silent '[,']w " . escape(tmpe, ' ')
+    " uncompress the temp file: call system("gzip -dn tmp.gz")
+    call system(a:cmd . " " . s:escape(tmpe))
+    if !filereadable(tmp)
+--- 73,87 ----
+    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 " . tmpe_esc
+    " uncompress the temp file: call system("gzip -dn tmp.gz")
+    call system(a:cmd . " " . s:escape(tmpe))
+    if !filereadable(tmp)
+***************
+*** 95,106 ****
+      setlocal nobin
+      if exists(":lockmarks")
+        if empty
+! 	execute "silent lockmarks " . l . "r ++edit " . tmp
+        else
+! 	execute "silent lockmarks " . l . "r " . tmp
+        endif
+      else
+!       execute "silent " . l . "r " . tmp
+      endif
+  
+      " if buffer became empty, delete trailing blank line
+--- 102,113 ----
+      setlocal nobin
+      if exists(":lockmarks")
+        if empty
+! 	execute "silent lockmarks " . l . "r ++edit " . tmp_esc
+        else
+! 	execute "silent lockmarks " . l . "r " . tmp_esc
+        endif
+      else
+!       execute "silent " . l . "r " . tmp_esc
+      endif
+  
+      " if buffer became empty, delete trailing blank line
+***************
+*** 110,117 ****
+      endif
+      " delete the temp file and the used buffers
+      call delete(tmp)
+!     silent! exe "bwipe " . tmp
+!     silent! exe "bwipe " . tmpe
+    endif
+  
+    " Restore saved option values.
+--- 117,124 ----
+      endif
+      " delete the temp file and the used buffers
+      call delete(tmp)
+!     silent! exe "bwipe " . tmp_esc
+!     silent! exe "bwipe " . tmpe_esc
+    endif
+  
+    " Restore saved option values.
+***************
+*** 124,133 ****
+  
+    " When uncompressed the whole buffer, do autocommands
+    if ok && empty
+      if &verbose >= 8
+!       execute "doau BufReadPost " . expand("%:r")
+      else
+!       execute "silent! doau BufReadPost " . expand("%:r")
+      endif
+    endif
+  endfun
+--- 131,145 ----
+  
+    " When uncompressed the whole buffer, do autocommands
+    if ok && empty
++     if exists('*fnameescape')
++       let fname = fnameescape(expand("%:r"))
++     else
++       let fname = escape(expand("%:r"), " \t\n*?[{`$\\%#'\"|!<")
++     endif
+      if &verbose >= 8
+!       execute "doau BufReadPost " . fname
+      else
+!       execute "silent! doau BufReadPost " . fname
+      endif
+    endif
+  endfun
+*** ../vim-7.1.304/src/version.c	Thu May 29 21:46:10 2008
+--- src/version.c	Thu May 29 22:33:11 2008
+***************
+*** 668,669 ****
+--- 673,676 ----
+  {   /* Add new patch number below this line */
++ /**/
++     305,
+  /**/
+
+-- 
+OLD WOMAN: Well, how did you become king, then?
+ARTHUR: The Lady of the Lake, her arm clad in the purest shimmering samite,
+        held Excalibur aloft from the bosom of the water to signify by Divine
+        Providence ...  that I, Arthur, was to carry Excalibur ...  That is
+        why I am your king!
+                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
diff --git a/README.patches b/README.patches
index 2d0db7a..d53aebf 100644
--- a/README.patches
+++ b/README.patches
@@ -24,8 +24,9 @@ Checksums for the patch files can be found in the file MD5.
 
 Collection of patches for Vim 7.1:
   SIZE  NAME                  INCLUDES
- 91424  7.1.001-100.gz	      patches 7.1.001 to 7.1.100, gzip'ed
- 75402  7.1.101-200.gz	      patches 7.1.101 to 7.1.200, gzip'ed
+ 91424  7.1.001-100.gz        patches 7.1.001 to 7.1.100, gzip'ed
+ 75402  7.1.101-200.gz        patches 7.1.101 to 7.1.200, gzip'ed
+109686  7.1.201-300.gz        patches 7.1.201 to 7.1.300, gzip'ed
 
 
 Individual patches for Vim 7.1:
@@ -330,3 +331,10 @@ Individual patches for Vim 7.1:
   9374  7.1.296  SELinux is not supported
   1855  7.1.297  wrong parenmatch highlighting after search/replace dialog
   1558  7.1.298  src/gvimtutor is not distributed
+  9490  7.1.299  filetype detection fails for file name with special characters
+  1959  7.1.300  value of asmsyntax argument isn't checked for valid characters
+  1673  7.1.301  "File/Save" menu in Insert mode doesn't update tab page label
+  1485  7.1.302  (after 7.1.299) compilation error on MS-Windows
+  1409  7.1.303  (after 7.1.302) compilation error on MS-Windows, again
+ 12135  7.1.304  shortpath_for_invalid_fname() is too complex and wrong
+  4735  7.1.305  can't edit compressed file with special characters in the name
diff --git a/vim.spec b/vim.spec
index 1f1f333..c961825 100644
--- a/vim.spec
+++ b/vim.spec
@@ -18,7 +18,7 @@
 #used for pre-releases:
 %define beta %{nil}
 %define vimdir vim71%{?beta}
-%define patchlevel 298
+%define patchlevel 305
 
 Summary: The VIM editor
 URL:     http://www.vim.org/
@@ -354,6 +354,13 @@ Patch295: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.295
 Patch296: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.296
 Patch297: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.297
 Patch298: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.298
+Patch299: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.299
+Patch300: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.300
+Patch301: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.301
+Patch302: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.302
+Patch303: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.303
+Patch304: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.304
+Patch305: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.305
 
 Patch3000: vim-7.0-syntax.patch
 Patch3002: vim-7.1-nowarnings.patch
@@ -789,6 +796,13 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk
 %patch296 -p0
 %patch297 -p0
 %patch298 -p0
+%patch299 -p0
+%patch300 -p0
+%patch301 -p0
+%patch302 -p0
+%patch303 -p0
+%patch304 -p0
+%patch305 -p0
 
 
 # install spell files
@@ -1207,6 +1221,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/icons/hicolor/*/apps/*
 
 %changelog
+* Tue Jun 03 2008 Karsten Hopp <karsten@redhat.com> 7.1.305-1
+- patchlevel 305
+
 * Thu May 15 2008 Karsten Hopp <karsten@redhat.com> 7.1.298-1
 - patchlevel 298