Index: src/poi.c
===================================================================
--- src/poi.c	(revision 19)
+++ src/poi.c	(revision 20)
@@ -76,6 +76,8 @@
 static sqlite3_stmt *_stmt_toggle_cat = NULL;
 static sqlite3_stmt *_stmt_selall_cat = NULL;
 
+static gint selected_poi_id = -1;
+
 typedef struct _PoiListInfo PoiListInfo;
 struct _PoiListInfo
 {
@@ -377,19 +379,17 @@
 }
 
 static void
-write_selected_poi(PoiInfo *poi, gint *id,
-        GtkTreeModel *model, GtkTreeIter *iter)
+write_selected_poi(PoiInfo *poi, GtkTreeModel *model, GtkTreeIter *iter)
 {
     gtk_tree_model_get(model, iter,
-            POI_POIID, &(poi->poi_id),
-            POI_CATID, &(poi->cat_id),
-            POI_LAT, &(poi->lat),
-            POI_LON, &(poi->lon),
-            POI_LABEL, &(poi->label),
-            POI_DESC, &(poi->desc),
-            POI_CLABEL, &(poi->clabel),
+            POI_POIID, &poi->poi_id,
+            POI_CATID, &poi->cat_id,
+            POI_LAT, &poi->lat,
+            POI_LON, &poi->lon,
+            POI_LABEL, &poi->label,
+            POI_DESC, &poi->desc,
+            POI_CLABEL, &poi->clabel,
             -1);
-    *id = poi->poi_id;
 }
 
 GSList *
@@ -419,7 +419,6 @@
 gboolean
 select_poi(gint unitx, gint unity, PoiInfo *poi, gboolean quick)
 {
-    static gint selected_poi_id = -1;
     GtkTreeIter *selected_poi = NULL;
     gint x, y;
     gdouble lat1, lon1, lat2, lon2;
@@ -502,22 +501,18 @@
     {
         if(!quick)
             MACRO_BANNER_SHOW_INFO(_window, _("No POIs found."));
-        selected_poi_id = -1;
         selected = FALSE;
     }
     /* one match */
     else if(num_pois == 1)
     {
-        write_selected_poi(poi, &selected_poi_id,
-                GTK_TREE_MODEL(store), selected_poi);
+        write_selected_poi(poi, GTK_TREE_MODEL(store), selected_poi);
         selected = TRUE;
     }
     /* two or more -- picking the nearest */
     else if(quick)
     {
         selected = get_nearest_poi(unitx, unity, poi);
-        if (selected)
-            selected_poi_id = poi->poi_id;
     }
     /* multiple matches -- let user decide */
     else
@@ -595,8 +590,7 @@
         map_force_redraw();
 
         if (selected)
-            write_selected_poi(poi, &selected_poi_id,
-                    GTK_TREE_MODEL(store), selected_poi);
+            write_selected_poi(poi, GTK_TREE_MODEL(store), selected_poi);
 
         gtk_widget_destroy(dialog);
     }
@@ -1222,13 +1216,13 @@
     DeletePOI dpoi;
     PoiCategoryEditInfo pcedit;
     gint cols = (DEG_FORMAT_ENUM_TEXT[_degformat].field_2_in_use) ? 6 : 4;
-
     gchar tmp1[LL_FMT_LEN], tmp2[LL_FMT_LEN];
+    gint fallback_deg_format = _degformat;
     
     printf("%s()\n", __PRETTY_FUNCTION__);
+
+    selected_poi_id = poi->poi_id;
     
-    gint fallback_deg_format = _degformat;
-    
     if(!coord_system_check_lat_lon(poi->lat, poi->lon, &fallback_deg_format))
     {
     	last_deg_format = _degformat;
