Index: trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 4673)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/UserListDialog.java	(revision 4674)
@@ -46,4 +46,5 @@
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.gui.progress.ContributorTermsUpdateRunnable;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -161,5 +162,5 @@
     public void showDialog() {
         super.showDialog();
-        User.initRelicensingInformation();
+        Main.worker.submit(new ContributorTermsUpdateRunnable());
         Layer layer = Main.main.getActiveLayer();
         if (layer instanceof OsmDataLayer) {
@@ -271,5 +272,5 @@
         @Override
         public void actionPerformed(ActionEvent e) {
-            User.loadRelicensingInformation(true);
+            Main.worker.submit(new ContributorTermsUpdateRunnable());
             Layer layer = Main.main.getActiveLayer();
             if (layer instanceof OsmDataLayer) {
@@ -428,5 +429,5 @@
             if (greyCheckmark == null) {
                 greyCheckmark = new JLabel(ImageProvider.get("misc", "grey_check.png"));
-                greyCheckmark.setToolTipText("Auto-accepted");
+                greyCheckmark.setToolTipText(tr("Auto-accepted"));
             }
             return greyCheckmark;
@@ -434,5 +435,5 @@
             if (redX == null) {
                 redX = new JLabel(ImageProvider.get("misc", "red_x.png"));
-                redX.setToolTipText("Declined");
+                redX.setToolTipText(tr("Declined"));
             }
             return redX;
@@ -440,5 +441,5 @@
             if (empty == null) {
                 empty = new JLabel("");
-                empty.setToolTipText("Undecided");
+                empty.setToolTipText(tr("Undecided"));
             }
         }
Index: trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialogManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialogManager.java	(revision 4673)
+++ trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserDialogManager.java	(revision 4674)
@@ -19,4 +19,5 @@
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.progress.ContributorTermsUpdateRunnable;
 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
 import org.openstreetmap.josm.tools.Predicate;
@@ -144,4 +145,7 @@
 			return;
 		}
+
+        Main.worker.submit(new ContributorTermsUpdateRunnable());
+
 		Collection<OsmPrimitive> toLoad = Utils.filter(primitives, unloadedHistoryPredicate);
 		if (!toLoad.isEmpty()) {
Index: trunk/src/org/openstreetmap/josm/gui/progress/ContributorTermsUpdateRunnable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/progress/ContributorTermsUpdateRunnable.java	(revision 4674)
+++ trunk/src/org/openstreetmap/josm/gui/progress/ContributorTermsUpdateRunnable.java	(revision 4674)
@@ -0,0 +1,27 @@
+package org.openstreetmap.josm.gui.progress;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import org.openstreetmap.josm.data.osm.User;
+import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+
+public class ContributorTermsUpdateRunnable extends PleaseWaitRunnable {
+
+    public ContributorTermsUpdateRunnable() {
+        super(tr("Updating CT user information"));
+    }
+
+    @Override
+    protected void cancel() {
+    }
+
+    @Override
+    protected void realRun() {
+        progressMonitor.indeterminateSubTask(null);
+        User.initRelicensingInformation();
+    }
+
+    @Override
+    protected void finish() {
+    }
+}
