Index: trunk/src/org/openstreetmap/josm/gui/history/CoordinateInfoViewer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/CoordinateInfoViewer.java	(revision 10194)
+++ trunk/src/org/openstreetmap/josm/gui/history/CoordinateInfoViewer.java	(revision 10210)
@@ -7,6 +7,4 @@
 import java.awt.GridBagLayout;
 import java.awt.Insets;
-import java.util.Observable;
-import java.util.Observer;
 
 import javax.swing.BorderFactory;
@@ -14,4 +12,6 @@
 import javax.swing.JPanel;
 import javax.swing.UIManager;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
 
 import org.openstreetmap.gui.jmapviewer.JMapViewer;
@@ -127,46 +127,46 @@
         setModel(model);
         build();
-        registerAsObserver(model);
-    }
-
-    protected void unregisterAsObserver(HistoryBrowserModel model) {
+        registerAsChangeListener(model);
+    }
+
+    protected void unregisterAsChangeListener(HistoryBrowserModel model) {
         if (currentInfoPanel != null) {
-            model.deleteObserver(currentInfoPanel);
+            model.removeChangeListener(currentInfoPanel);
         }
         if (referenceInfoPanel != null) {
-            model.deleteObserver(referenceInfoPanel);
+            model.removeChangeListener(referenceInfoPanel);
         }
         if (currentLatLonViewer != null) {
-            model.deleteObserver(currentLatLonViewer);
+            model.removeChangeListener(currentLatLonViewer);
         }
         if (referenceLatLonViewer != null) {
-            model.deleteObserver(referenceLatLonViewer);
+            model.removeChangeListener(referenceLatLonViewer);
         }
         if (distanceViewer != null) {
-            model.deleteObserver(distanceViewer);
+            model.removeChangeListener(distanceViewer);
         }
         if (mapViewer != null) {
-            model.deleteObserver(mapViewer);
-        }
-    }
-
-    protected void registerAsObserver(HistoryBrowserModel model) {
+            model.removeChangeListener(mapViewer);
+        }
+    }
+
+    protected void registerAsChangeListener(HistoryBrowserModel model) {
         if (currentInfoPanel != null) {
-            model.addObserver(currentInfoPanel);
+            model.addChangeListener(currentInfoPanel);
         }
         if (referenceInfoPanel != null) {
-            model.addObserver(referenceInfoPanel);
+            model.addChangeListener(referenceInfoPanel);
         }
         if (currentLatLonViewer != null) {
-            model.addObserver(currentLatLonViewer);
+            model.addChangeListener(currentLatLonViewer);
         }
         if (referenceLatLonViewer != null) {
-            model.addObserver(referenceLatLonViewer);
+            model.addChangeListener(referenceLatLonViewer);
         }
         if (distanceViewer != null) {
-            model.addObserver(distanceViewer);
+            model.addChangeListener(distanceViewer);
         }
         if (mapViewer != null) {
-            model.addObserver(mapViewer);
+            model.addChangeListener(mapViewer);
         }
     }
@@ -179,9 +179,9 @@
     public void setModel(HistoryBrowserModel model) {
         if (this.model != null) {
-            unregisterAsObserver(model);
+            unregisterAsChangeListener(model);
         }
         this.model = model;
         if (this.model != null) {
-            registerAsObserver(model);
+            registerAsChangeListener(model);
         }
     }
@@ -241,5 +241,5 @@
      * A UI widgets which displays the Lan/Lon-coordinates of a {@link HistoryNode}.
      */
-    private static class LatLonViewer extends JPanel implements Observer {
+    private static class LatLonViewer extends JPanel implements ChangeListener {
 
         private final JosmTextArea lblLat = newTextArea();
@@ -324,10 +324,10 @@
 
         @Override
-        public void update(Observable o, Object arg) {
+        public void stateChanged(ChangeEvent e) {
             refresh();
         }
     }
 
-    private static class MapViewer extends JMapViewer implements Observer {
+    private static class MapViewer extends JMapViewer implements ChangeListener {
 
         private final Updater updater;
@@ -339,5 +339,5 @@
 
         @Override
-        public void update(Observable o, Object arg) {
+        public void stateChanged(ChangeEvent e) {
             final Pair<LatLon, LatLon> coordinates = updater.getCoordinates();
             if (coordinates == null) {
@@ -362,5 +362,5 @@
     }
 
-    private static class DistanceViewer extends JPanel implements Observer {
+    private static class DistanceViewer extends JPanel implements ChangeListener {
 
         private final JosmTextArea lblDistance = newTextArea();
@@ -417,5 +417,5 @@
 
         @Override
-        public void update(Observable o, Object arg) {
+        public void stateChanged(ChangeEvent e) {
             refresh();
         }
Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java	(revision 10194)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java	(revision 10210)
@@ -9,5 +9,4 @@
 import java.util.HashSet;
 import java.util.List;
-import java.util.Observable;
 import java.util.Set;
 
@@ -46,4 +45,5 @@
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.gui.util.ChangeNotifier;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.date.DateUtils;
@@ -74,5 +74,5 @@
  * @see HistoryBrowser
  */
-public class HistoryBrowserModel extends Observable implements LayerChangeListener, DataSetListener {
+public class HistoryBrowserModel extends ChangeNotifier implements LayerChangeListener, DataSetListener {
     /** the history of an OsmPrimitive */
     private History history;
@@ -198,6 +198,5 @@
         initNodeListTableModels();
         initMemberListTableModels();
-        setChanged();
-        notifyObservers();
+        fireStateChanged();
         versionTableModel.fireTableDataChanged();
     }
@@ -317,6 +316,5 @@
         initNodeListTableModels();
         initMemberListTableModels();
-        setChanged();
-        notifyObservers();
+        fireStateChanged();
     }
 
@@ -348,6 +346,5 @@
         initNodeListTableModels();
         initMemberListTableModels();
-        setChanged();
-        notifyObservers();
+        fireStateChanged();
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryViewerPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryViewerPanel.java	(revision 10194)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryViewerPanel.java	(revision 10210)
@@ -41,27 +41,27 @@
     public final void setModel(HistoryBrowserModel model) {
         if (this.model != null) {
-            unregisterAsObserver(model);
+            unregisterAsChangeListener(model);
         }
         this.model = model;
         if (this.model != null) {
-            registerAsObserver(model);
+            registerAsChangeListener(model);
         }
     }
 
-    protected final void unregisterAsObserver(HistoryBrowserModel model) {
+    protected final void unregisterAsChangeListener(HistoryBrowserModel model) {
         if (currentInfoPanel != null) {
-            model.deleteObserver(currentInfoPanel);
+            model.removeChangeListener(currentInfoPanel);
         }
         if (referenceInfoPanel != null) {
-            model.deleteObserver(referenceInfoPanel);
+            model.removeChangeListener(referenceInfoPanel);
         }
     }
 
-    protected final void registerAsObserver(HistoryBrowserModel model) {
+    protected final void registerAsChangeListener(HistoryBrowserModel model) {
         if (currentInfoPanel != null) {
-            model.addObserver(currentInfoPanel);
+            model.addChangeListener(currentInfoPanel);
         }
         if (referenceInfoPanel != null) {
-            model.addObserver(referenceInfoPanel);
+            model.addChangeListener(referenceInfoPanel);
         }
     }
Index: trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java	(revision 10194)
+++ trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java	(revision 10210)
@@ -173,19 +173,19 @@
     }
 
-    protected void unregisterAsObserver(HistoryBrowserModel model) {
+    protected void unregisterAsChangeListener(HistoryBrowserModel model) {
         if (currentInfoPanel != null) {
-            model.deleteObserver(currentInfoPanel);
+            model.removeChangeListener(currentInfoPanel);
         }
         if (referenceInfoPanel != null) {
-            model.deleteObserver(referenceInfoPanel);
-        }
-    }
-
-    protected void registerAsObserver(HistoryBrowserModel model) {
+            model.removeChangeListener(referenceInfoPanel);
+        }
+    }
+
+    protected void registerAsChangeListener(HistoryBrowserModel model) {
         if (currentInfoPanel != null) {
-            model.addObserver(currentInfoPanel);
+            model.addChangeListener(currentInfoPanel);
         }
         if (referenceInfoPanel != null) {
-            model.addObserver(referenceInfoPanel);
+            model.addChangeListener(referenceInfoPanel);
         }
     }
@@ -197,9 +197,9 @@
     public void setModel(HistoryBrowserModel model) {
         if (this.model != null) {
-            unregisterAsObserver(model);
+            unregisterAsChangeListener(model);
         }
         this.model = model;
         if (this.model != null) {
-            registerAsObserver(model);
+            registerAsChangeListener(model);
         }
     }
Index: trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java	(revision 10194)
+++ trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java	(revision 10210)
@@ -15,6 +15,4 @@
 import java.util.Collections;
 import java.util.Date;
-import java.util.Observable;
-import java.util.Observer;
 
 import javax.swing.AbstractAction;
@@ -24,4 +22,6 @@
 import javax.swing.JPanel;
 import javax.swing.JTextArea;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
 
 import org.openstreetmap.josm.Main;
@@ -48,5 +48,5 @@
  * @since 1709
  */
-public class VersionInfoPanel extends JPanel implements Observer {
+public class VersionInfoPanel extends JPanel implements ChangeListener {
     private final PointInTimeType pointInTimeType;
     private final transient HistoryBrowserModel model;
@@ -189,5 +189,5 @@
         this.model = model;
         this.pointInTimeType = pointInTimeType;
-        model.addObserver(this);
+        model.addChangeListener(this);
         build();
     }
@@ -198,5 +198,5 @@
 
     @Override
-    public void update(Observable o, Object arg) {
+    public void stateChanged(ChangeEvent e) {
         HistoryOsmPrimitive primitive = getPrimitive();
         if (primitive != null) {
Index: trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java	(revision 10194)
+++ trunk/src/org/openstreetmap/josm/gui/history/VersionTable.java	(revision 10210)
@@ -14,6 +14,4 @@
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
-import java.util.Observable;
-import java.util.Observer;
 
 import javax.swing.DefaultCellEditor;
@@ -25,4 +23,6 @@
 import javax.swing.SwingConstants;
 import javax.swing.UIManager;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
 import javax.swing.event.TableModelEvent;
 import javax.swing.event.TableModelListener;
@@ -45,5 +45,5 @@
  * @since 1709
  */
-public class VersionTable extends JTable implements Observer {
+public class VersionTable extends JTable implements ChangeListener {
     private VersionTablePopupMenu popupMenu;
     private final transient HistoryBrowserModel model;
@@ -55,5 +55,5 @@
     public VersionTable(HistoryBrowserModel model) {
         super(model.getVersionTableModel(), new VersionTableColumnModel());
-        model.addObserver(this);
+        model.addChangeListener(this);
         build();
         this.model = model;
@@ -117,5 +117,5 @@
 
     @Override
-    public void update(Observable o, Object arg) {
+    public void stateChanged(ChangeEvent e) {
         repaint();
     }
