diff --git a/geocoder.admin.inc b/geocoder.admin.inc
index c4ca49b..fde4694 100644
--- a/geocoder.admin.inc
+++ b/geocoder.admin.inc
@@ -38,14 +38,64 @@ function geocoder_admin_settings($form, &$form_state) {
     '#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),
+    '#default_value' => empty($geocoder_settings['geocoder_google_delay']) ? 0 : $geocoder_settings['geocoder_google_delay'],
     '#size' => 10,
   );
 
+  $form['geocoder_nominatim_limit'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Result Limit'),
+    '#description' => t('Sets the number of results to be returned by the Mapquest nominatim service.'),
+    '#default_value' => empty($geocoder_settings['geocoder_nominatim_limit']) ? 1 : $geocoder_settings['geocoder_nominatim_limit'],
+    '#size' => 10,
+  );
+
+  $countries_all = geocoder_countries();
+  $countries = array(
+    'none' => "All Countries",
+  );
+  foreach ($countries_all as $country) {
+    $countries[$country['iso_alpha2']] = $country['name'];
+  }
+  $form['geocoder_country'] = array(
+    '#type' => 'select',
+    '#title' => t('Country'),
+    '#description' => t('Only return results from this country.'),
+    '#required' => FALSE,
+    '#options' => $countries,
+    '#default_value' => empty($geocoder_settings['geocoder_country']) ? 'none' : $geocoder_settings['geocoder_country'],
+  );
+
   $form['#submit'][] = 'geocoder_admin_settings_submit';
   return system_settings_form($form);
 }
 
+/**
+ * Retrieve a list of countries.
+ */
+function geocoder_countries() {
+$field_names = array('iso_alpha2', 'iso_alpha3', 'iso_numeric', 'fips_code', 'name', 'capital', 'areainsqkm',
+'population', 'continent', 'tld', 'currency', 'currencyname', 'phone', 'postal_code_format',
+'postal_code_regex', 'languages', 'geonameid', 'neighbours', 'equivalentfipscode');
+$countries = array();
+$file = drupal_http_request("http://download.geonames.org/export/dump/countryInfo.txt?app=drupal");
+if ($file->code == 200) {
+// Insert all records from the HTTP response
+$num = preg_match_all('/^[A-Z].*?$/ms', $file->data, $matches);
+foreach ($matches[0] as $line) {
+$object = array_combine($field_names, explode("\t", $line));
+if ($object['geonameid'] != 0) {
+$countries[] = $object;
+}
+}
+watchdog("openlayers_geosearch_openstreetmap", "Successfully updated the list of countries");
+}
+else {
+watchdog("openlayers_geosearch_openstreetmap", "Failed to update the list of countries", WATCHDOG_WARNING);
+}
+return $countries;
+}
+
 function geocoder_admin_settings_validate($form_id, $form_values) {
   if (!empty($form_values['values']['geocoder_apikey_yahoo']) && preg_match("/[^A-Za-z0-9\\-]/", trim($form_values['values']['geocoder_apikey_yahoo']))) {
     form_set_error('geocoder_apikey_yahoo', t('Yahoo API keys are alpha numeric and dashes only.'));
@@ -57,5 +107,9 @@ function geocoder_admin_settings_submit($form, &$form_state) {
   $geocoder_settings['geocoder_apikey_yahoo'] = trim($form_state['values']['geocoder_apikey_yahoo']);
   $geocoder_settings['geocoder_apikey_yandex'] = trim($form_state['values']['geocoder_apikey_yandex']);
   $geocoder_settings['geocoder_apikey_bing'] = trim($form_state['values']['geocoder_apikey_bing']);
+
+  $geocoder_settings['geocoder_nominatim_limit'] = trim($form_state['values']['geocoder_nominatim_limit']);
+  $geocoder_settings['geocoder_country'] = trim($form_state['values']['geocoder_country']);
+
   variable_set("geocoder_settings", $geocoder_settings);
 }
diff --git a/plugins/geocoder_handler/mapquest_nominatim.inc b/plugins/geocoder_handler/mapquest_nominatim.inc
index 8c9fb89..c656bca 100644
--- a/plugins/geocoder_handler/mapquest_nominatim.inc
+++ b/plugins/geocoder_handler/mapquest_nominatim.inc
@@ -23,14 +23,21 @@ $plugin = array(
  */
 function geocoder_mapquest_nominatim($address, $options = array()) {
   $geocoder_settings = variable_get("geocoder_settings", array());
-  $api_url = "http://open.mapquestapi.com/nominatim/v1/search";
+
   $params = array(
     'q' => str_replace(' ', '+', $address),
     'format' => 'json',
     'addressdetails' => 0,
-    'limit' => 1,
+    'limit' => $geocoder_settings['geocoder_nominatim_limit'],
     'osm_type' => 'N',
   );
+
+  if($geocoder_settings['geocoder_country'] != "none") {
+    $params['countrycodes'] = $geocoder_settings['geocoder_country'];
+  }
+
+  $api_url = "http://open.mapquestapi.com/nominatim/v1/search";
+
   $request = drupal_http_request($api_url . '?' . drupal_http_build_query($params));
   $data = json_decode($request->data);
   return _geocoder_mapquest_nominatim_geometry($data);
