Index: applications/editors/josm/plugins/waypoint_search/src/org/openstreetmap/josm/plugins/waypointSearch/SelectWaypointDialog.java
===================================================================
--- applications/editors/josm/plugins/waypoint_search/src/org/openstreetmap/josm/plugins/waypointSearch/SelectWaypointDialog.java	(revision 32643)
+++ applications/editors/josm/plugins/waypoint_search/src/org/openstreetmap/josm/plugins/waypointSearch/SelectWaypointDialog.java	(revision 32644)
@@ -31,5 +31,5 @@
     private DefaultListModel<String> listModel = new DefaultListModel<>();
     private JList<String> searchResult = new JList<>(listModel);
-    private List<Marker> searchResultObjectCache = new ArrayList<>();
+    private transient List<Marker> searchResultObjectCache = new ArrayList<>();
     private boolean firstTimeSearch = true;
 
@@ -81,15 +81,15 @@
 
     @Override
-    public void keyPressed(KeyEvent arg0) {
+    public void keyPressed(KeyEvent e) {
         // Do nothing
     }
 
     @Override
-    public void keyReleased(KeyEvent arg0) {
+    public void keyReleased(KeyEvent e) {
         updateSearchResults();
     }
 
     @Override
-    public void keyTyped(KeyEvent arg0) {
+    public void keyTyped(KeyEvent e) {
         firstTimeSearch = false;
     }
@@ -99,21 +99,24 @@
         if (e.getSource() == searchResult) {
             //click on the search result box
-            Marker marker = searchResultObjectCache.get(searchResult.getSelectedIndex());
-            Main.map.mapView.zoomTo(marker.getCoor());
+            int idx = searchResult.getSelectedIndex();
+            if (idx >= 0) {
+                Marker marker = searchResultObjectCache.get(idx);
+                Main.map.mapView.zoomTo(marker.getCoor());
+            }
         }
     }
 
     @Override
-    public void mouseEntered(MouseEvent arg0) {
+    public void mouseEntered(MouseEvent e) {
         // Do nothing
     }
 
     @Override
-    public void mouseExited(MouseEvent arg0) {
+    public void mouseExited(MouseEvent e) {
         // Do nothing
     }
 
     @Override
-    public void mousePressed(MouseEvent arg0) {
+    public void mousePressed(MouseEvent e) {
         if (searchPattern.getSelectedText() == null) {
             searchPattern.selectAll();
@@ -122,5 +125,5 @@
 
     @Override
-    public void mouseReleased(MouseEvent arg0) {
+    public void mouseReleased(MouseEvent e) {
         // Do nothing
     }
