diff --git a/runtime/indent/css.vim b/runtime/indent/css.vim
index ee4288c..b0560b4 100644
--- a/runtime/indent/css.vim
+++ b/runtime/indent/css.vim
@@ -1,7 +1,7 @@
 " Vim indent file
-" Language:         CSS
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Language:	    CSS
+" Maintainer:	    Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-06-30
 
 if exists("b:did_indent")
   finish
@@ -15,39 +15,68 @@
   finish
 endif
 
-function s:LookupLine(lnum)
-  let lnum = prevnonblank(a:lnum - 1)
-  while lnum > 0
+function s:prevnonblanknoncomment(lnum)
+  let lnum = a:lnum
+  while lnum > 1
+    let lnum = prevnonblank(lnum)
     let line = getline(lnum)
-
     if line =~ '\*/'
-      while lnum > 0 && line !~ '/\*'
+      while lnum > 1 && line !~ '/\*'
         let lnum -= 1
-        let line = getline(lnum)
       endwhile
+      if line =~ '^\s*/\*'
+        let lnum -= 1
+      else
+        break
+      endif
+    else
+      break
     endif
-
-    if line !~ '^\s*/\*'
-      return lnum
-    end
   endwhile
   return lnum
 endfunction
 
+function s:count_braces(lnum, count_open)
+  let n_open = 0
+  let n_close = 0
+  let line = getline(a:lnum)
+  let pattern = '[{}]'
+  let i = match(line, pattern)
+  while i != -1
+    if synIDattr(synID(a:lnum, i + 1, 0), 'name') !~ 'css\%(Comment\|StringQ\{1,2}\)'
+      if line[i] == '{'
+        let n_open += 1
+      elseif line[i] == '}'
+        if n_open > 0
+          let n_open -= 1
+        else
+          let n_close += 1
+        endif
+      endif
+    endif
+    let i = match(line, pattern, i + 1)
+  endwhile
+  return a:count_open ? n_open : n_close
+endfunction
+
 function GetCSSIndent()
-  let lnum = prevnonblank(v:lnum - 1)
-  if lnum == 0
+  let line = getline(v:lnum)
+  if line =~ '^\s*\*'
+    return cindent(v:lnum)
+  elseif line =~ '^\s*}'
+    return indent(v:lnum) - &sw
+  endif
+
+  let pnum = s:prevnonblanknoncomment(v:lnum - 1)
+  if pnum == 0
     return 0
   endif
 
-  let ind = indent(lnum)
+  let ind = indent(pnum) + s:count_braces(pnum, 1) * &sw
 
-  if substitute(getline(lnum), '/\*.*', '', 'e') =~ '{\(.*}\)\@!'
-    let ind = ind + &sw
-  endif
-
-  if getline(v:lnum) =~ '^\s*}'
-    let ind = ind - &sw
+  let pline = getline(pnum)
+  if pline =~ '}\s*$'
+    let ind -= (s:count_braces(pnum, 0) - (pline =~ '^\s*}' ? 1 : 0)) * &sw
   endif
 
   return ind
