Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java	(revision 2274)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowser.java	(revision 2275)
@@ -139,5 +139,5 @@
         } else if (history.getEarliest().getType().equals(OsmPrimitiveType.RELATION)) {
             tpViewers.add(relationMemberListViewer);
-            tpViewers.setTitleAt(2, tr("Members"));
+            tpViewers.setTitleAt(1, tr("Members"));
         }
         revalidate();
Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java	(revision 2274)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java	(revision 2275)
@@ -22,4 +22,23 @@
 import org.xml.sax.SAXException;
 
+/**
+ * Loads the the object history of an collection of objects from the
+ * server.
+ *
+ * It provides a fluent API for configuration.
+ * 
+ * Sample usage:
+ * 
+ * <pre>
+ *   HistoryLoadTask task  = new HistoryLoadTask()
+ *      .add(1, OsmPrimitiveType.NODE)
+ *      .add(1233, OsmPrimitiveType.WAY)
+ *      .add(37234, OsmPrimitveType.RELATION)
+ *      .add(aHistoryItem);
+ * 
+ *   Main.worker.execute(task);
+ * 
+ * </pre>
+ */
 public class HistoryLoadTask extends PleaseWaitRunnable {
 
@@ -34,4 +53,11 @@
     }
 
+    /**
+     * Adds an object whose history is to be loaded.
+     * 
+     * @param id the object id
+     * @param type the object type
+     * @return this task
+     */
     public HistoryLoadTask add(long id, OsmPrimitiveType type) {
         if (id <= 0)
@@ -45,5 +71,12 @@
     }
 
-    public HistoryLoadTask add(HistoryOsmPrimitive primitive) {
+    /**
+     * Adds an object to be loaded, the object is specified by a history item.
+     * 
+     * @param primitive the history item
+     * @return this task
+     * @throws IllegalArgumentException thrown if primitive is null
+     */
+    public HistoryLoadTask add(HistoryOsmPrimitive primitive) throws IllegalArgumentException  {
         if (primitive == null)
             throw new IllegalArgumentException(tr("Parameter ''{0}'' must not be null.", "primitive"));
@@ -54,5 +87,12 @@
     }
 
-    public HistoryLoadTask add(History history) {
+    /**
+     * Adds an object to be loaded, the object is specified by an already loaded object history.
+     * 
+     * @param history the history. Must not be null.
+     * @return this task
+     * @throws IllegalArgumentException thrown if history is null
+     */
+    public HistoryLoadTask add(History history)throws IllegalArgumentException {
         if (history == null)
             throw new IllegalArgumentException(tr("Parameter ''{0}'' must not be null.", "history"));
@@ -63,11 +103,30 @@
     }
 
-    public HistoryLoadTask add(OsmPrimitive primitive) {
+    /**
+     * 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() > 0 required.
+     * @return this task
+     * @throws IllegalArgumentException thrown if the primitive is null
+     * @throws IllegalArgumentException thrown if primitive.getId() <= 0
+     */
+    public HistoryLoadTask add(OsmPrimitive primitive) throws IllegalArgumentException {
         if (primitive == null)
             throw new IllegalArgumentException(tr("Parameter ''{0}'' must not be null.", "primitive"));
+        if (primitive.getId() <= 0)
+            throw new IllegalArgumentException(tr("Object id > 0 expected. Got {0}", primitive.getId()));
+
         return add(primitive.getId(), OsmPrimitiveType.from(primitive));
     }
 
-    public HistoryLoadTask add(Collection<? extends OsmPrimitive> primitives) {
+    /**
+     * Adds a collection of objects to loaded, specified by a collection of OSM primitives.
+     * 
+     * @param primitive the OSM primitive. Must not be null. primitive.getId() > 0 required.
+     * @return this task
+     * @throws IllegalArgumentException thrown if primitives is null
+     * @throws IllegalArgumentException thrown if one of the ids in the collection <= 0
+     */
+    public HistoryLoadTask add(Collection<? extends OsmPrimitive> primitives) throws IllegalArgumentException{
         if (primitives == null)
             throw new IllegalArgumentException(tr("Parameter ''{0}'' must not be null.", "primitives"));
