updated for version 7.2a
diff --git a/runtime/autoload/ccomplete.vim b/runtime/autoload/ccomplete.vim
index 0f013d7..6850e19 100644
--- a/runtime/autoload/ccomplete.vim
+++ b/runtime/autoload/ccomplete.vim
@@ -1,7 +1,7 @@
 " Vim completion script
 " Language:	C
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 May 08
+" Last Change:	2007 Aug 30
 
 
 " This function is used for the 'omnifunc' option.
@@ -119,6 +119,27 @@
     " TODO: join previous line if it makes sense
     let line = getline('.')
     let col = col('.')
+    if stridx(strpart(line, 0, col), ';') != -1
+      " Handle multiple declarations on the same line.
+      let col2 = col - 1
+      while line[col2] != ';'
+	let col2 -= 1
+      endwhile
+      let line = strpart(line, col2 + 1)
+      let col -= col2
+    endif
+    if stridx(strpart(line, 0, col), ',') != -1
+      " Handle multiple declarations on the same line in a function
+      " declaration.
+      let col2 = col - 1
+      while line[col2] != ','
+	let col2 -= 1
+      endwhile
+      if strpart(line, col2 + 1, col - col2 - 1) =~ ' *[^ ][^ ]*  *[^ ]'
+	let line = strpart(line, col2 + 1)
+	let col -= col2
+      endif
+    endif
     if len(items) == 1
       " Completing one word and it's a local variable: May add '[', '.' or
       " '->'.
@@ -140,7 +161,7 @@
       let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}]
     else
       " Completing "var.", "var.something", etc.
-      let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1)
+      let res = s:Nextitem(strpart(line, 0, col), items[-1], 0, 1)
     endif
   endif