diff --git a/bundle/vim-plugin-for-drupal/plugin/drupal.vim b/bundle/vim-plugin-for-drupal/plugin/drupal.vim
index ad44beb..892be69 100644
--- a/bundle/vim-plugin-for-drupal/plugin/drupal.vim
+++ b/bundle/vim-plugin-for-drupal/plugin/drupal.vim
@@ -47,6 +47,17 @@ endfunction " }}} }}}
 " output of "drush site-alias".
 command! -nargs=* -complete=custom,s:DrushComplete Drush call s:Drush(<q-args>)
 function! s:Drush(command) abort " {{{
+  let shortcommand = 'drush ' . a:command
+  let statusline = '%<[' . shortcommand . '] %h%m%r%=%-14.(%l,%c%V%) %P'
+
+  " If the vim-dispatch plugin is available, then let it do the job.
+  if exists(':Dispatch') == 2
+    " let &l:statusline = statusline
+    exe 'Dispatch drush' a:command
+    return
+  endif
+
+  " Since vim-dispatch is not available, we have to do it ourselves.
   " Open a new window. It is OK to quit without saving, and :w does nothing.
   new
   setlocal buftype=nofile bufhidden=hide noswapfile
@@ -56,12 +67,11 @@ function! s:Drush(command) abort " {{{
   " if exists(":AnsiEsc") == 2
     " AnsiEsc
   " endif
+  " Change the status line to list the command instead of '[Scratch]'.
+  let &l:statusline = statusline
   " Execute the command and grab the output. Clean it up.
   " TODO: Does the clean-up work on other OS's?
   let commandline = 'drush --nocolor ' . a:command
-  let shortcommand = 'drush ' . a:command
-  " Change the status line to list the command instead of '[Scratch]'.
-  let &l:statusline = '%<[' . shortcommand . '] %h%m%r%=%-14.(%l,%c%V%) %P'
   let out = system(commandline)
   let out = substitute(out, '\s*\r', '', 'g')
   " Add the command and output to our new scratch window.
