diff --git a/compiler/coder.vim b/compiler/coder.vim
new file mode 100644
index 0000000..05d58d2
--- /dev/null
+++ b/compiler/coder.vim
@@ -0,0 +1,35 @@
+" Vim compiler file
+" Compiler:	Coder module
+" Maintainer:	Benji Fisher <http://drupal.org/user/683300>
+" URL:		http://drupal.org/project/vimrc
+" Last Change:	Mon Dec 19 10:00 AM 2011 EST
+
+if exists("current_compiler")
+  finish
+endif
+let current_compiler = "coder"
+
+if exists(":CompilerSet") != 2		" older Vim always used :setlocal
+  command -nargs=* CompilerSet setlocal <args>
+endif
+
+let s:cpo_save = &cpo
+set cpo-=C
+
+if strlen(b:Drupal_info.DRUPAL_ROOT)
+  let coder_format = findfile('coder_format.php', b:Drupal_info.DRUPAL_ROOT . '/**')
+  if strlen(coder_format)
+
+    execute 'CompilerSet makeprg=php\ ' . coder_format
+
+    CompilerSet errorformat=%f\ processed.
+
+    augroup Drupal
+      au! QuickFixCmdPre,QuickFixCmdPost
+    augroup END
+
+  endif
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/ftplugin/drupal.vim b/ftplugin/drupal.vim
index 922f19b..a353643 100644
--- a/ftplugin/drupal.vim
+++ b/ftplugin/drupal.vim
@@ -18,6 +18,13 @@ setl formatoptions+=croql
 "  +q:  Format comments using q<motion>.
 "  +l:  Do not break a comment line if it is long before you start.
 
+" Syntastic settings, adapted from
+" echodittolabs.org/drupal-coding-standards-vim-code-sniffer-syntastic-regex
+if &ft =~ '\<php\>' && exists('loaded_syntastic_plugin') && executable('phpcs')
+  let g:syntastic_phpcs_conf = ' --standard=DrupalCodingStandard'
+	\ . ' --extensions=php,module,inc,install,test,profile,theme'
+endif
+
 " Custom SVN blame
 vmap <buffer> gl :<C-U>!svn blame <C-R>=expand("%:P") <CR> \| sed -n <C-R>=line("'<") <CR>,<C-R>=line("'>") <CR>p <CR>
 
