diff --git a/sites/all/modules/deploy/plugins/DeployAuthenticatorSession.inc b/sites/all/modules/deploy/plugins/DeployAuthenticatorSession.inc
index a122b38..8873416 100644
--- a/sites/all/modules/deploy/plugins/DeployAuthenticatorSession.inc
+++ b/sites/all/modules/deploy/plugins/DeployAuthenticatorSession.inc
@@ -40,6 +40,7 @@ class DeployAuthenticatorSession implements DeployAuthenticator {
       // the default Services path is OK, since it covers 99% of the use cases.
       $login_url = $this->service->config['url'] . '/user/login';
       $logout_url = $this->service->config['url'] . '/user/logout';
+      $token_url = $this->service->config['url'] . '/user/token';
 
       $options = array(
         'method' => 'POST',
@@ -71,25 +72,7 @@ class DeployAuthenticatorSession implements DeployAuthenticator {
         // We have to get a CSFR Token from the server and pass along with
         // each services call (introduced in Services 7.x-3.4
         // as per SA-CONTRIB-2013-051; https://drupal.org/node/2012982).
-        $user = NULL;
-        $parts = parse_url($this->service->config['url']);
-        $port = '';
-
-        if (isset($parts['port'])) {
-          $port = ':' . $parts['port'];
-        }
-
-        if (isset($parts['user'])) {
-          $user = $parts['user'];
-        }
-
-        if (isset($parts['pass'])) {
-          $pass = $parts['pass'];
-        }
-
-        $token_url = $parts['scheme'] . '://' . ($user ? $user . ':' . $pass . '@' : '') . $parts['host'] . $port . '/services/session/token';
-
-        $token_response = drupal_http_request($token_url, array('method' => 'GET', 'headers' => $this->service->config['headers']));
+        $token_response = drupal_http_request($token_url, array('method' => 'POST', 'headers' => $this->service->config['headers']));
         if (isset($token_response->error) || !in_array($token_response->code, array(200, 304))) {
           throw new DeployAuthenticationException(t('Authentication error: @code @error', array('@code' => $token_response->code, '@error' => t('Failed to retrieve CSRF token.'))));
         }
@@ -97,8 +80,8 @@ class DeployAuthenticatorSession implements DeployAuthenticator {
         if ($this->config['debug']) {
           watchdog('deploy', 'Session CSRF Token response: @response', array('@response' => print_r($token_response, TRUE)), WATCHDOG_DEBUG);
         }
-
-        $this->service->config['headers']['X-CSRF-Token'] = trim($token_response->data);
+        $result = json_decode($token_response->data);
+        $this->service->config['headers']['X-CSRF-Token'] = trim($result->token);
       }
       else {
         throw new DeployAuthenticationException(t("No session was returned from the authentication request."));
@@ -118,7 +101,7 @@ class DeployAuthenticatorSession implements DeployAuthenticator {
         'method' => 'POST',
         'headers' => array(
           'Cookie' => $response->headers['set-cookie'],
-          'X-CSRF-Token' => trim($token_response->data),
+          'X-CSRF-Token' => trim($result->token),
         ),
       );
       $response = drupal_http_request($logout_url, $options);
