diff --git a/geocoder.admin.inc b/geocoder.admin.inc
index ca00529..4d854d7 100644
--- a/geocoder.admin.inc
+++ b/geocoder.admin.inc
@@ -26,6 +26,14 @@ function geocoder_admin_settings($form, &$form_state) {
     '#required' => FALSE,
   );
 
+  $form['geocoder_google_delay'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Delay between Google geocoding requests (in milliseconds)'),
+    '#description' => t('Adds a delay between geocoding requests, to avoid OVER_QUERY_LIMIT errors from Google. 200ms is recommended.'),
+    '#default_value' => variable_get('geocoder_google_delay', 0),
+    '#size' => 10,
+  );
+
   $form['#submit'][] = 'geocoder_admin_settings_submit';
   return system_settings_form($form);
 }
diff --git a/plugins/geocoder_handler/google.inc b/plugins/geocoder_handler/google.inc
index 5b1ddb9..96067f8 100755
--- a/plugins/geocoder_handler/google.inc
+++ b/plugins/geocoder_handler/google.inc
@@ -25,6 +25,12 @@ $plugin = array(
  */
 function geocoder_google($address, $options = array()) {
   try {
+    $delay_trigger = &drupal_static(__FUNCTION__);
+    $delay = variable_get('geocoder_google_delay', 0);
+    if ($delay > 0 && $delay_trigger) {
+      usleep($delay * 1000);
+    }
+
     geophp_load();
 
     $query = array(
@@ -34,6 +40,7 @@ function geocoder_google($address, $options = array()) {
 
     $url = url("http://maps.googleapis.com/maps/api/geocode/json", array('query' => $query));
     $result = drupal_http_request($url);
+    $delay_trigger = TRUE;
 
     if (isset($result->error)) {
       $args = array(
