diff --git a/commands/runserver/runserver-drupal.inc b/commands/runserver/runserver-drupal.inc
index d860580..b4e41af 100644
--- a/commands/runserver/runserver-drupal.inc
+++ b/commands/runserver/runserver-drupal.inc
@@ -64,8 +64,14 @@ class DrupalServer extends HTTPServer {
 
     $cgi_env['SCRIPT_NAME'] = '/index.php';
     $cgi_env['HTTP_HOST'] = $cgi_env['SERVER_NAME'] = $this->site;
-
-    return $this->get_php_response($request, $doc_root . '/index.php', $cgi_env);
+    $postdata = '';
+    while (!feof($request->content_stream)) {
+      $postdata .= fread($request->content_stream, 8192);
+    }
+    $data = drush_invoke_process('@self', 'runserver-fetch', array(serialize($cgi_env), $postdata));
+    $response = $this->response(200, $data['output'], $data['object']['headers']);
+    return $response;
+//    return $this->get_php_response($request, $doc_root . '/index.php', $cgi_env);
   }
 
   /**
diff --git a/commands/runserver/runserver.drush.inc b/commands/runserver/runserver.drush.inc
index c5381f1..04ddc02 100644
--- a/commands/runserver/runserver.drush.inc
+++ b/commands/runserver/runserver.drush.inc
@@ -69,6 +69,9 @@ function runserver_drush_command() {
       'drush rs --watchdog :9000/admin' => 'Start runserver on 127.0.0.1, port 9000, and open /admin in browser, including any watchdog messages for the session in the log. Note that you need a colon when you specify port and path, but no IP.',
     ),
   );
+  $items['runserver-fetch'] = array(
+    'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_SITE,
+  );
   return $items;
 }
 
@@ -158,6 +161,19 @@ function drush_core_runserver($uri = NULL) {
   $server->run_forever();
 }
 
+function drush_core_runserver_fetch($cgi_env, $data = '') {
+  global $base_url;
+  $_SERVER = array_merge($_SERVER, unserialize($cgi_env));
+  parse_str($_SERVER['QUERY_STRING'], $_GET);
+  parse_str($data, $_POST);
+  require_once(DRUSH_BASE_PATH . '/commands/runserver/runserver-prepend.php');
+  drush_bootstrap_max();
+  menu_execute_active_handler();
+  return array(
+    'headers' => drupal_get_http_header(),
+  );
+}
+
 /**
  * Parse a URI or partial URI (including just a port, host IP or path).
  *
