diff --git a/runtime/indent/css.vim b/runtime/indent/css.vim
new file mode 100644
index 0000000..610c725
--- /dev/null
+++ b/runtime/indent/css.vim
@@ -0,0 +1,79 @@
+" Vim indent file
+" Language:	    CSS
+" Maintainer:	    Nikolai Weibull <source@pcppopper.org>
+" URL:		    http://www.pcppopper.org/vim/indent/pcp/css/
+" Latest Revision:  2004-04-25
+" arch-tag:	    ccfd77a0-1c9a-43f7-a407-bbe704541442
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+  finish
+endif
+
+let b:did_indent = 1
+
+setlocal indentexpr=GetCSSIndent()
+setlocal indentkeys-=:,0# indentkeys-=e
+
+" Only define the function once.
+if exists("*GetCSSIndent")
+  finish
+endif
+
+function! s:LookupLine(lnum)
+  " find a non-blank line above the current line
+  let lnum = prevnonblank(a:lnum - 1)
+
+  if lnum == 0
+    return 0
+  endif
+
+  let line = getline(lnum)
+
+  " if the line has an end comment sequence we need to find a line
+  " that isn't affected by the comment.
+  if line =~ '\*/'
+    while line !~ '/\*'
+      let lnum = lnum - 1
+      let line = getline(lnum)
+    endwhile
+  endif
+
+  " if the line we found only contained the comment and whitespace
+  " we need to find another line to use...
+  if line =~ '^\s*/\*'
+    return s:LookupLine(lnum)
+  else
+    return lnum
+  endif
+endfunction
+
+function GetCSSIndent()
+  let lnum = s:LookupLine(v:lnum)
+
+  if lnum == 0
+    return 0
+  endif
+
+  " remove commented stuff from line
+  let line = substitute(getline(lnum), '/\*.\*/', '', 'eg')
+
+  let ind = indent(lnum)
+
+  " check for opening brace on the previous line
+  " skip if it also contains a closing brace...
+  if line =~ '{\(.*}\)\@!'
+    let ind = ind + &sw
+  endif
+
+  let line = getline(v:lnum)
+
+  " check for closing brace first on current line
+  if line =~ '^\s*}'
+    let ind	= ind - &sw
+  endif
+
+  return ind
+endfunction
+
+" vim: set sts=2 sw=2:
