diff --git a/docroot/sites/all/modules/contrib/geocoder/plugins/geocoder_handler/google.inc b/docroot/sites/all/modules/contrib/geocoder/plugins/geocoder_handler/google.inc
index 5b1ddb9..2d54f4d 100755
--- a/docroot/sites/all/modules/contrib/geocoder/plugins/geocoder_handler/google.inc
+++ b/docroot/sites/all/modules/contrib/geocoder/plugins/geocoder_handler/google.inc
@@ -32,6 +32,18 @@ function geocoder_google($address, $options = array()) {
       'sensor' => 'false',
     );
 
+    if (!empty($options['bias']['type']) && !empty($options['bias']['value'])) {
+      $query[$options['bias']['type']] = $options['bias']['value'];
+    }
+
+    if (!empty($options['components'])) {
+      // Construct the right query string
+      $query['components'] = implode(
+        '|',
+        array_map('_geocoder_google_key_value_to_string', array_keys($options['components']), $options['components'])
+      );
+    }
+
     $url = url("http://maps.googleapis.com/maps/api/geocode/json", array('query' => $query));
     $result = drupal_http_request($url);
 
@@ -121,6 +133,10 @@ function geocoder_google($address, $options = array()) {
   }
 }
 
+function _geocoder_google_key_value_to_string($key, $value) {
+  return $key . ':' . $value;
+}
+
 function geocoder_google_field($field, $field_item, $options = array()) {
   if ($field['type'] == 'text' || $field['type'] == 'text_long' || $field['type'] == 'text_with_summary' || $field['type'] == 'computed') {
     return geocoder_google($field_item['value'], $options);
@@ -141,7 +157,7 @@ function geocoder_google_field($field, $field_item, $options = array()) {
 
 function geocoder_google_form($default_values = array()) {
   $form = array();
-  
+
   $form['geometry_type'] = array(
     '#type' => 'select',
     '#title' => 'Geometry Type',
@@ -150,16 +166,16 @@ function geocoder_google_form($default_values = array()) {
       'bounds' => 'Bounding Box',
       'viewport' => 'Viewport',
     ),
-    '#default_value' => isset($default_values['geometry_type']) ? $default_values['geometry_type'] : 'point', 
+    '#default_value' => isset($default_values['geometry_type']) ? $default_values['geometry_type'] : 'point',
   );
 
   $form['all_results'] = array(
     '#type' => 'checkbox',
     '#title' => 'Geocode all alternative results',
     '#default_value' => isset($default_values['all_results']) ? $default_values['all_results'] : FALSE,
-    '#description' => 'Often an ambiguous address (such as "Springfield USA") can result in multiple hits. By default we only return the first (best guess) result. Check this to return all results as a Multi-Geometry (MultiPoint or MultiPolygon).', 
+    '#description' => 'Often an ambiguous address (such as "Springfield USA") can result in multiple hits. By default we only return the first (best guess) result. Check this to return all results as a Multi-Geometry (MultiPoint or MultiPolygon).',
   );
-  
+
   $form['reject_results'] = array(
     '#type' => 'checkboxes',
     '#title' => 'Reject Results',
@@ -172,6 +188,27 @@ function geocoder_google_form($default_values = array()) {
     '#default_value' => isset($default_values['reject_results']) ? $default_values['reject_results'] : array(),
     '#description' => 'Reject results that do not meet a certain level of quality or precision. Check all types of results to reject.',
   );
-  
+
+  $form['bias'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Bias results'),
+    '#description' => t('If desired, geocoding results can be biased to return results for a prefered region or bounding box.'),
+  );
+
+  $form['bias']['type'] = array(
+    '#type' => 'select',
+    '#options' => array('Select bias type' => '',
+      'region' => 'Region',
+      'bounds' => 'Bounding Box'),
+    '#default_value' => isset($default_values['bias']['type']) ? $default_values['bias']['type'] : '',
+  );
+
+  $form['bias']['value'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Bounding box'),
+    '#description' => t('See <a href="@url">the Google Geocoding API documentation</a> for details and the correct format.', array('@url' => 'https://developers.google.com/maps/documentation/geocoding/#Viewports')),
+    '#default_value' => isset($default_values['bias']['value']) ? $default_values['bias']['value'] : '',
+  );
+
   return $form;
 }
