--- countries_api.module.old	2011-04-10 12:31:46.000000000 -0500
+++ countries_api.module	2011-04-10 12:31:45.000000000 -0500
@@ -161,7 +161,12 @@ function _countries_api_iso_get_country(
   if (!countries_api_validate_format($format)) {
     return FALSE;
   }
-  $result = db_query("SELECT iso2, name, printable_name, iso3, numcode FROM {countries_api_countries} WHERE %s = '%s'", $format, $value);
+  If (module_exists('geonames')) {
+    $result = db_query("SELECT iso_alpha2 AS iso2, name AS name, name AS printable_name, iso_alpha3 AS iso3, iso_numeric AS numcode FROM {geonames_countryinfo} WHERE %s = '%s' ORDER BY name ASC", $format, $value);
+  }
+  else {
+    $result = db_query("SELECT iso2, name, printable_name, iso3, numcode FROM {countries_api_countries} WHERE %s = '%s'", $format, $value);
+  }
   return db_fetch_array($result); 
 }
 
@@ -207,8 +212,13 @@ function countries_api_get_options_array
  * TODO: Cache results
  *  @return associative array of all countries
  */
-function countries_api_get_list() {  
-  $result = db_query("SELECT iso2, iso3, name, printable_name, numcode FROM {countries_api_countries}");
+function countries_api_get_list() {
+  If (module_exists('geonames')) {
+    $result = db_query("SELECT iso_alpha2 AS iso2, iso_alpha3 AS iso3, name AS name, name AS printable_name, iso_numeric AS numcode FROM {geonames_countryinfo} ORDER BY name ASC");
+  }
+  else {
+    $result = db_query("SELECT iso2, iso3, name, printable_name, numcode FROM {countries_api_countries}");
+  }
   $countries = array();
   while ($row = db_fetch_array($result)) {
     $countries[] = $row;
