diff --git a/composer.json b/composer.json
index 92d2ead..0f349fa 100644
--- a/composer.json
+++ b/composer.json
@@ -7,7 +7,9 @@
     "prefer-stable": true,
     "homepage": "https://drupal.org/project/geocoder",
     "require": {
-        "willdurand/geocoder": "^3.3"
+        "willdurand/geocoder": "3.3.1",
+        "php-http/guzzle6-adapter": "^1",
+        "php-http/message": "^1.8"
     },
     "authors": [
         {
diff --git a/geocoder.services.yml b/geocoder.services.yml
index 76388d2..0f170c3 100644
--- a/geocoder.services.yml
+++ b/geocoder.services.yml
@@ -5,7 +5,7 @@ services:
     arguments: ['@config.factory','@plugin.manager.geocoder.provider']
 
   geocoder.http_adapter:
-    class: Drupal\geocoder\GeocoderHttpAdapter
+    class: Http\Adapter\Guzzle6\Client
     arguments: ['@http_client']
 
   plugin.manager.geocoder.provider:
diff --git a/src/GeocoderHttpAdapter.php b/src/GeocoderHttpAdapter.php
deleted file mode 100644
index 5111427..0000000
--- a/src/GeocoderHttpAdapter.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-namespace Drupal\geocoder;
-
-use GuzzleHttp\ClientInterface;
-use Ivory\HttpAdapter\AbstractHttpAdapter;
-use Ivory\HttpAdapter\Message\InternalRequestInterface;
-
-/**
- * Extends AbstractHttpAdapter to use Guzzle.
- */
-class GeocoderHttpAdapter extends AbstractHttpAdapter {
-  /**
-   * The HTTP client.
-   *
-   * @var \GuzzleHttp\Client
-   */
-  protected $httpClient;
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getName() {
-    return 'geocoder_http_adapter';
-  }
-
-  /**
-   * Creates an HTTP adapter.
-   *
-   * @param \GuzzleHttp\ClientInterface $httpClient
-   *   A Guzzle client object.
-   */
-  public function __construct(ClientInterface $httpClient) {
-    parent::__construct();
-    $this->httpClient = $httpClient;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function sendInternalRequest(InternalRequestInterface $internalRequest) {
-    return $this->httpClient->request($internalRequest->getMethod(), (string) $internalRequest->getUri(), [
-      'headers' => $this->prepareHeaders($internalRequest, FALSE, FALSE),
-    ]);
-  }
-
-}
diff --git a/src/Plugin/Geocoder/Provider/GoogleMaps.php b/src/Plugin/Geocoder/Provider/GoogleMaps.php
index 551187c..09943e2 100644
--- a/src/Plugin/Geocoder/Provider/GoogleMaps.php
+++ b/src/Plugin/Geocoder/Provider/GoogleMaps.php
@@ -14,7 +14,6 @@ use Drupal\geocoder\ProviderUsingHandlerWithAdapterBase;
  *   arguments = {
  *     "locale" = NULL,
  *     "region" = NULL,
- *     "usessl" = TRUE,
  *     "apikey" = NULL,
  *   }
  * )
diff --git a/src/ProviderUsingHandlerWithAdapterBase.php b/src/ProviderUsingHandlerWithAdapterBase.php
index ba65fcd..25959ba 100644
--- a/src/ProviderUsingHandlerWithAdapterBase.php
+++ b/src/ProviderUsingHandlerWithAdapterBase.php
@@ -4,7 +4,7 @@ namespace Drupal\geocoder;
 
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Config\ConfigFactoryInterface;
-use Ivory\HttpAdapter\HttpAdapterInterface;
+use Http\Client\HttpClient;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -12,13 +12,6 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
  */
 abstract class ProviderUsingHandlerWithAdapterBase extends ProviderUsingHandlerBase {
 
-  /**
-   * The HTTP adapter.
-   *
-   * @var \Ivory\HttpAdapter\HttpAdapterInterface
-   */
-  protected $httpAdapter;
-
   /**
    * Constructs a geocoder provider plugin object.
    *
@@ -32,16 +25,23 @@ abstract class ProviderUsingHandlerWithAdapterBase extends ProviderUsingHandlerB
    *   The config factory service.
    * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend
    *   The cache backend used to cache geocoding data.
-   * @param \Ivory\HttpAdapter\HttpAdapterInterface $http_adapter
+   * @param \Http\Client\HttpClient $http_adapter
    *   The HTTP adapter.
    *
    * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
    */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, ConfigFactoryInterface $config_factory, CacheBackendInterface $cache_backend, HttpAdapterInterface $http_adapter) {
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, ConfigFactoryInterface $config_factory, CacheBackendInterface $cache_backend, HttpClient $http_adapter) {
     parent::__construct($configuration, $plugin_id, $plugin_definition, $config_factory, $cache_backend);
     $this->httpAdapter = $http_adapter;
   }
 
+  /**
+   * The HTTP adapter.
+   *
+   * @var \Http\Client\HttpClient
+   */
+  protected $httpAdapter;
+
   /**
    * {@inheritdoc}
    *
