Index: /trunk/src/org/openstreetmap/josm/data/osm/Changeset.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/Changeset.java	(revision 9467)
+++ /trunk/src/org/openstreetmap/josm/data/osm/Changeset.java	(revision 9468)
@@ -89,4 +89,18 @@
     }
 
+    /**
+     * Creates a changeset with the data obtained from the given preset, i.e.,
+     * the {@link AbstractPrimitive#getChangesetId() changeset id}, {@link AbstractPrimitive#getUser() user}, and
+     * {@link AbstractPrimitive#getTimestamp() timestamp}.
+     * @param primitive the primitive to use
+     * @return the created changeset
+     */
+    public static Changeset fromPrimitive(final OsmPrimitive primitive) {
+        final Changeset changeset = new Changeset(primitive.getChangesetId());
+        changeset.setUser(primitive.getUser());
+        changeset.setCreatedAt(primitive.getTimestamp()); // not accurate in all cases
+        return changeset;
+    }
+
     public void visit(Visitor v) {
         v.visit(this);
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMerger.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMerger.java	(revision 9467)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMerger.java	(revision 9468)
@@ -27,4 +27,5 @@
 import org.openstreetmap.josm.gui.conflict.pair.IConflictResolver;
 import org.openstreetmap.josm.gui.conflict.pair.MergeDecisionType;
+import org.openstreetmap.josm.gui.history.VersionInfoPanel;
 import org.openstreetmap.josm.tools.ImageProvider;
 
@@ -48,4 +49,6 @@
 
     private final transient PropertiesMergeModel model;
+    private final VersionInfoPanel mineVersionInfo = new VersionInfoPanel();
+    private final VersionInfoPanel theirVersionInfo = new VersionInfoPanel();
 
     /**
@@ -78,5 +81,5 @@
         gc.weightx = 0.0;
         gc.weighty = 0.0;
-        gc.insets = new Insets(10, 0, 10, 0);
+        gc.insets = new Insets(10, 0, 0, 0);
         JLabel lblMyVersion = new JLabel(tr("My version"));
         lblMyVersion.setToolTipText(tr("Properties in my dataset, i.e. the local dataset"));
@@ -84,5 +87,4 @@
 
         gc.gridx = 3;
-        gc.gridy = 0;
         JLabel lblMergedVersion = new JLabel(tr("Merged version"));
         lblMergedVersion.setToolTipText(
@@ -91,8 +93,18 @@
 
         gc.gridx = 5;
-        gc.gridy = 0;
         JLabel lblTheirVersion = new JLabel(tr("Their version"));
         lblTheirVersion.setToolTipText(tr("Properties in their dataset, i.e. the server dataset"));
         add(lblTheirVersion, gc);
+
+        gc.gridx = 1;
+        gc.gridy = 1;
+        gc.fill = GridBagConstraints.HORIZONTAL;
+        gc.anchor = GridBagConstraints.LINE_START;
+        gc.insets = new Insets(0, 0, 20, 0);
+        add(mineVersionInfo, gc);
+
+        gc.gridx = 5;
+        add(theirVersionInfo, gc);
+
     }
 
@@ -101,5 +113,5 @@
 
         gc.gridx = 0;
-        gc.gridy = 1;
+        gc.gridy = 2;
         gc.gridwidth = 1;
         gc.gridheight = 1;
@@ -112,5 +124,4 @@
 
         gc.gridx = 1;
-        gc.gridy = 1;
         gc.fill = GridBagConstraints.BOTH;
         gc.anchor = GridBagConstraints.CENTER;
@@ -120,5 +131,4 @@
 
         gc.gridx = 2;
-        gc.gridy = 1;
         gc.fill = GridBagConstraints.NONE;
         gc.anchor = GridBagConstraints.CENTER;
@@ -132,5 +142,4 @@
 
         gc.gridx = 3;
-        gc.gridy = 1;
         gc.fill = GridBagConstraints.BOTH;
         gc.anchor = GridBagConstraints.CENTER;
@@ -140,5 +149,4 @@
 
         gc.gridx = 4;
-        gc.gridy = 1;
         gc.fill = GridBagConstraints.NONE;
         gc.anchor = GridBagConstraints.CENTER;
@@ -151,5 +159,4 @@
 
         gc.gridx = 5;
-        gc.gridy = 1;
         gc.fill = GridBagConstraints.BOTH;
         gc.anchor = GridBagConstraints.CENTER;
@@ -160,5 +167,5 @@
         // ---------------------------------------------------
         gc.gridx = 3;
-        gc.gridy = 2;
+        gc.gridy = 3;
         gc.fill = GridBagConstraints.NONE;
         gc.anchor = GridBagConstraints.CENTER;
@@ -175,5 +182,5 @@
 
         gc.gridx = 0;
-        gc.gridy = 3;
+        gc.gridy = 4;
         gc.gridwidth = 1;
         gc.gridheight = 1;
@@ -186,5 +193,4 @@
 
         gc.gridx = 1;
-        gc.gridy = 3;
         gc.fill = GridBagConstraints.BOTH;
         gc.anchor = GridBagConstraints.CENTER;
@@ -194,5 +200,4 @@
 
         gc.gridx = 2;
-        gc.gridy = 3;
         gc.fill = GridBagConstraints.NONE;
         gc.anchor = GridBagConstraints.CENTER;
@@ -206,5 +211,4 @@
 
         gc.gridx = 3;
-        gc.gridy = 3;
         gc.fill = GridBagConstraints.BOTH;
         gc.anchor = GridBagConstraints.CENTER;
@@ -214,5 +218,4 @@
 
         gc.gridx = 4;
-        gc.gridy = 3;
         gc.fill = GridBagConstraints.NONE;
         gc.anchor = GridBagConstraints.CENTER;
@@ -226,5 +229,4 @@
 
         gc.gridx = 5;
-        gc.gridy = 3;
         gc.fill = GridBagConstraints.BOTH;
         gc.anchor = GridBagConstraints.CENTER;
@@ -235,5 +237,5 @@
         // ---------------------------------------------------
         gc.gridx = 3;
-        gc.gridy = 4;
+        gc.gridy = 5;
         gc.fill = GridBagConstraints.NONE;
         gc.anchor = GridBagConstraints.CENTER;
@@ -507,4 +509,6 @@
     public void populate(Conflict<? extends OsmPrimitive> conflict) {
         model.populate(conflict);
+        mineVersionInfo.update(conflict.getMy(), true);
+        theirVersionInfo.update(conflict.getTheir(), false);
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java	(revision 9467)
+++ /trunk/src/org/openstreetmap/josm/gui/history/VersionInfoPanel.java	(revision 9468)
@@ -13,4 +13,5 @@
 import java.text.DateFormat;
 import java.util.Collections;
+import java.util.Date;
 import java.util.Observable;
 import java.util.Observer;
@@ -134,23 +135,20 @@
     }
 
-    protected String getInfoText() {
-        HistoryOsmPrimitive primitive = getPrimitive();
-        if (primitive == null)
-            return "";
+    protected String getInfoText(final Date timestamp, final long version, final boolean isLatest) {
         String text;
-        if (model.isLatest(primitive)) {
+        if (isLatest) {
             OsmDataLayer editLayer = Main.main.getEditLayer();
             text = tr("<html>Version <strong>{0}</strong> currently edited in layer ''{1}''</html>",
-                    Long.toString(primitive.getVersion()),
+                    Long.toString(version),
                     editLayer == null ? tr("unknown") : editLayer.getName()
                     );
         } else {
             String date = "?";
-            if (primitive.getTimestamp() != null) {
-                date = DateUtils.formatDateTime(primitive.getTimestamp(), DateFormat.SHORT, DateFormat.SHORT);
+            if (timestamp != null) {
+                date = DateUtils.formatDateTime(timestamp, DateFormat.SHORT, DateFormat.SHORT);
             }
             text = tr(
                     "<html>Version <strong>{0}</strong> created on <strong>{1}</strong></html>",
-                    Long.toString(primitive.getVersion()), date);
+                    Long.toString(version), date);
         }
         return text;
@@ -190,15 +188,22 @@
     @Override
     public void update(Observable o, Object arg) {
-        lblInfo.setText(getInfoText());
-
         HistoryOsmPrimitive primitive = getPrimitive();
         Changeset cs = primitive.getChangeset();
-
-        if (!model.isLatest(primitive)) {
-            User user = primitive.getUser();
-            String url = Main.getBaseBrowseUrl() + "/changeset/" + primitive.getChangesetId();
+        update(cs, model.isLatest(primitive), primitive.getTimestamp(), primitive.getVersion());
+    }
+
+    public void update(final OsmPrimitive primitive, final boolean isLatest) {
+        update(Changeset.fromPrimitive(primitive), isLatest, primitive.getTimestamp(), primitive.getVersion());
+    }
+
+    public void update(final Changeset cs, final boolean isLatest, final Date timestamp, final long version) {
+        lblInfo.setText(getInfoText(timestamp, version, isLatest));
+
+        if (!isLatest) {
+            User user = cs.getUser();
+            String url = Main.getBaseBrowseUrl() + "/changeset/" + cs.getId();
             lblChangeset.setUrl(url);
-            lblChangeset.setDescription(Long.toString(primitive.getChangesetId()));
-            changesetDialogAction.setId((int) primitive.getChangesetId());
+            lblChangeset.setDescription(Long.toString(cs.getId()));
+            changesetDialogAction.setId(cs.getId());
             changesetButton.setEnabled(true);
 
@@ -228,5 +233,5 @@
         }
 
-        final Changeset oppCs = model.getPointInTime(pointInTimeType.opposite()).getChangeset();
+        final Changeset oppCs = model != null ? model.getPointInTime(pointInTimeType.opposite()).getChangeset() : null;
         updateText(cs, "comment", texChangesetComment, null, oppCs, texChangesetComment);
         updateText(cs, "source", texChangesetSource, lblSource, oppCs, pnlChangesetSource);
