--- location.module	2009-03-03 22:07:19.000000000 +0200
+++ location.new.module	2009-06-30 08:52:28.036000000 +0300
@@ -769,10 +769,10 @@ function location_load_locations($id, $k
     return array();
   }
   if ($key == 'genid') {
-    $result = db_query('SELECT lid FROM {location_instance} WHERE '. db_escape_table($key) ." = '%s'", $id);
+    $result = db_query('SELECT i.lid FROM {location_instance} AS i INNER JOIN {location} AS l ON l.lid = i.lid WHERE '. db_escape_table($key) .' = \'%s\' ORDER BY l.is_primary DESC', $id);
   }
   else {
-    $result = db_query('SELECT lid FROM {location_instance} WHERE '. db_escape_table($key) .' = %d', $id);
+    $result = db_query('SELECT i.lid FROM {location_instance} AS i INNER JOIN {location} AS l ON l.lid = i.lid WHERE '. db_escape_table($key) .' = %d ORDER BY l.is_primary DESC', $id);
   }
   $locations = array();
   while ($lid = db_fetch_object($result)) {
