Index: trunk/src/org/openstreetmap/josm/data/osm/IPrimitive.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/IPrimitive.java	(revision 13923)
+++ trunk/src/org/openstreetmap/josm/data/osm/IPrimitive.java	(revision 13924)
@@ -199,7 +199,31 @@
 
     /**
-     * Replies the unique primitive id for this primitive
+     * Replies the OSM id of this primitive.
+     * By default, returns the same value as {@link #getId}.
+     * Can be overidden by primitive implementations handling an internal id different from the OSM one.
+     *
+     * @return the OSM id of this primitive.
+     * @since 13924
+     */
+    default long getOsmId() {
+        return getId();
+    }
+
+    /**
+     * Replies the OSM primitive id for this primitive.
+     *
+     * @return the OSM primitive id for this primitive
+     * @see #getOsmId
+     * @since 13924
+     */
+    default PrimitiveId getOsmPrimitiveId() {
+        return new SimplePrimitiveId(getOsmId(), getType());
+    }
+
+    /**
+     * Replies the unique primitive id for this primitive.
      *
      * @return the unique primitive id for this primitive
+     * @see #getUniqueId
      */
     default PrimitiveId getPrimitiveId() {
Index: trunk/src/org/openstreetmap/josm/data/osm/PrimitiveId.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/PrimitiveId.java	(revision 13923)
+++ trunk/src/org/openstreetmap/josm/data/osm/PrimitiveId.java	(revision 13924)
@@ -3,5 +3,5 @@
 
 /**
-* interface to represent identifaction and type of the datatypes primitives.
+* interface to represent identification and type of the datatypes primitives.
 *
 * @since 2399
Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java	(revision 13923)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java	(revision 13924)
@@ -113,12 +113,12 @@
      * Adds an object to be loaded, the object is specified by an OSM primitive.
      *
-     * @param primitive the OSM primitive. Must not be null. primitive.getId() &gt; 0 required.
+     * @param primitive the OSM primitive. Must not be null. primitive.getOsmId() &gt; 0 required.
      * @return this task
      * @throws IllegalArgumentException if the primitive is null
-     * @throws IllegalArgumentException if primitive.getId() &lt;= 0
+     * @throws IllegalArgumentException if primitive.getOsmId() &lt;= 0
      */
     public HistoryLoadTask add(OsmPrimitive primitive) {
-        CheckParameterUtil.ensure(primitive, "primitive", "id > 0", prim -> prim.getUniqueId() > 0);
-        return add(primitive.getPrimitiveId());
+        CheckParameterUtil.ensure(primitive, "primitive", "id > 0", prim -> prim.getOsmId() > 0);
+        return add(primitive.getOsmPrimitiveId());
     }
 
