Update runtime files.
diff --git a/runtime/autoload/phpcomplete.vim b/runtime/autoload/phpcomplete.vim
index e5d910e..0756555 100644
--- a/runtime/autoload/phpcomplete.vim
+++ b/runtime/autoload/phpcomplete.vim
@@ -1,7 +1,7 @@
 " Vim completion script
 " Language:	PHP
 " Maintainer:	Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change:	2006 May 9
+" Last Change:	2011 Dec 08
 "
 "   TODO:
 "   - Class aware completion:
@@ -650,6 +650,7 @@
 	" this is the most efficient way. The other way
 	" is to go through the looong string looking for
 	" matching {}
+	let original_window = winnr()
 	below 1new
 	0put =cfile
 	call search('class\s\+'.a:name)
@@ -667,6 +668,9 @@
 	let classcontent = join(classc, "\n")
 
 	bw! %
+	" go back to where we started
+	exe original_window.'wincmd w'
+
 	if extends_class != ''
 		let classlocation = phpcomplete#GetClassLocation(extends_class)
 		if filereadable(classlocation)
diff --git a/runtime/autoload/syntaxcomplete.vim b/runtime/autoload/syntaxcomplete.vim
index 7b96bfd..f36c668 100644
--- a/runtime/autoload/syntaxcomplete.vim
+++ b/runtime/autoload/syntaxcomplete.vim
@@ -1,12 +1,18 @@
 " Vim completion script
 " Language:    All languages, uses existing syntax highlighting rules
 " Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
-" Version:     7.0
-" Last Change: 2010 Jul 29
+" Version:     8.0
+" Last Change: 2011 Nov 02
 " Usage:       For detailed help, ":help ft-syntax-omni" 
 
 " History
 "
+" Version 8.0
+"     Updated SyntaxCSyntaxGroupItems()
+"         - Some additional syntax items were also allowed
+"           on nextgroup= lines which were ignored by default.
+"           Now these lines are processed independently.
+"
 " Version 7.0
 "     Updated syntaxcomplete#OmniSyntaxList()
 "         - Looking up the syntax groups defined from a syntax file
@@ -44,7 +50,7 @@
 if exists('g:loaded_syntax_completion')
     finish 
 endif
-let g:loaded_syntax_completion = 70
+let g:loaded_syntax_completion = 80
 
 " Set ignorecase to the ftplugin standard
 " This is the default setting, but if you define a buffer local
@@ -72,7 +78,8 @@
 " This script will build a completion list based on the syntax
 " elements defined by the files in $VIMRUNTIME/syntax.
 let s:syn_remove_words = 'match,matchgroup=,contains,'.
-            \ 'links to,start=,end=,nextgroup='
+            \ 'links to,start=,end='
+            " \ 'links to,start=,end=,nextgroup='
 
 let s:cache_name = []
 let s:cache_list = []
@@ -411,9 +418,25 @@
                     \    , "\n", 'g' 
                     \  )
 
-        " Now strip off the newline + blank space + contained
+        " Now strip off the newline + blank space + contained.
+        " Also include lines with nextgroup=@someName skip_key_words syntax_element
         let syn_list = substitute( 
-                    \    syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\)'
+                    \    syn_list, '\%(^\|\n\)\@<=\s*\<\(contained\|nextgroup=\)'
+                    \    , "", 'g' 
+                    \ )
+
+        " This can leave lines like this
+        "     =@vimMenuList  skipwhite onoremenu
+        " Strip the special option keywords first
+        "     :h :syn-skipwhite*
+        let syn_list = substitute( 
+                    \    syn_list, '\<\(skipwhite\|skipnl\|skipempty\)\>'
+                    \    , "", 'g' 
+                    \ )
+
+        " Now remove the remainder of the nextgroup=@someName lines
+        let syn_list = substitute( 
+                    \    syn_list, '\%(^\|\n\)\@<=\s*\(@\w\+\)'
                     \    , "", 'g' 
                     \ )