diff --git a/includes/context-task-handler.inc b/includes/context-task-handler.inc
index a1d9cd4..f541c67 100644
--- a/includes/context-task-handler.inc
+++ b/includes/context-task-handler.inc
@@ -148,7 +148,7 @@ function ctools_context_handler_render_handler($task, $subtask, $handler, $conte
       case 305:
       case 307:
         $info += array(
-          'query' => '',
+          'query' => array(),
           'fragment' => '',
         );
         $options = array(
diff --git a/page_manager/plugins/task_handlers/http_response.inc b/page_manager/plugins/task_handlers/http_response.inc
index 9743f79..c11dcd7 100644
--- a/page_manager/plugins/task_handlers/http_response.inc
+++ b/page_manager/plugins/task_handlers/http_response.inc
@@ -271,14 +271,14 @@ function page_manager_http_response_render($handler, $base_contexts, $args, $tes
     $url = parse_url($path);
     if (isset($url['query'])) {
       $path = strtr($path, array('?' . $url['query'] => ''));
-      $info['query'] = $url['query'];
+      $info['query'] = drupal_get_query_array($url['query']);
     }
     if (isset($url['fragment'])) {
       $path = strtr($path, array('#' . $url['fragment'] => ''));
       $info['fragment'] = $url['fragment'];
     }
 
-    $info['destination'] = $path;
+    $info['destination'] = rtrim($path, '?');
   }
 
   return $info;
