diff --git a/src/Plugin/tmgmt/Translator/GoogleTranslator.php b/src/Plugin/tmgmt/Translator/GoogleTranslator.php
index d25248f..915c0ad 100755
--- a/src/Plugin/tmgmt/Translator/GoogleTranslator.php
+++ b/src/Plugin/tmgmt/Translator/GoogleTranslator.php
@@ -18,7 +18,7 @@ use Drupal\tmgmt\TranslatorPluginBase;
 use GuzzleHttp\ClientInterface;
 use GuzzleHttp\Exception\BadResponseException;
 use GuzzleHttp;
-use GuzzleHttp\Message;
+use GuzzleHttp\Psr7\Request;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -293,6 +293,7 @@ class GoogleTranslator extends TranslatorPluginBase implements ContainerFactoryP
     if (!in_array($action, $this->availableActions)) {
       throw new TMGMTException('Invalid action requested: @action', array('@action' => $action));
     }
+    $query_string = '';
 
     // Translate action is requested without this argument.
     if ($action == 'translate') {
@@ -304,22 +305,33 @@ class GoogleTranslator extends TranslatorPluginBase implements ContainerFactoryP
     $url = ($custom_url ? $custom_url : $this->translatorUrl) . '/' . $action;
 
     // Prepare Guzzle Object.
-    $request = $this->client->createRequest('GET', $url);
-    $query = $request->getQuery();
-    $query->merge($request_query);
-    $query->set('key', $translator->getSetting('api_key'));
-    $query->setAggregator($query::duplicateAggregator());
+    $request = new Request('GET', $url);
 
+    // Build the query.
+    $query_string .= '&key=' . $translator->getSetting('api_key');
+    if (isset($request_query['q'])) {
+      foreach ($request_query['q'] as $source_text) {
+        $query_string .= '&q=' . urlencode($source_text);
+      }
+    }
+    if (isset($request_query['source'])) {
+      $query_string .= '&source=' . $request_query['source'];
+    }
+    if (isset($request_query['target'])) {
+      $query_string .= '&target=' . $request_query['target'];
+    }
+
+    // Send the request with the query.
     try {
-      $response = $this->client->send($request);
+      $response = $this->client->send($request, ['query' => $query_string]);
     }
     catch (BadResponseException $e) {
-      $error = $e->getResponse()->json();
-      throw new \Exception('Google Translate service returned following error: ' . $error['error']['message']);
+      $error = json_decode($e->getResponse()->getBody(), TRUE);
+      throw new TMGMTException('Google Translate service returned following error: @error', ['@error' => $error['error']['message']]);
     }
 
     // Process the JSON result into array.
-    return $response->json();
+    return json_decode($response->getBody(), TRUE);
   }
 
   /**
