Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 16597)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 16598)
@@ -116,4 +116,5 @@
 import org.openstreetmap.josm.tools.Logging;
 import org.openstreetmap.josm.tools.Shortcut;
+import org.openstreetmap.josm.tools.TaginfoRegionalInstance;
 import org.openstreetmap.josm.tools.Territories;
 import org.openstreetmap.josm.tools.Utils;
@@ -197,4 +198,5 @@
     private final TaginfoAction tagHistoryAction = taginfoAction.toTagHistoryAction();
     private final Collection<TaginfoAction> taginfoNationalActions = new ArrayList<>();
+    private transient int taginfoNationalHash;
     private final PasteValueAction pasteValueAction = new PasteValueAction();
     private final CopyValueAction copyValueAction = new CopyValueAction(
@@ -371,13 +373,21 @@
 
     private void setupTaginfoNationalActions(Collection<? extends IPrimitive> newSel) {
+        if (newSel.isEmpty()) {
+            return;
+        }
+        final LatLon center = newSel.iterator().next().getBBox().getCenter();
+        List<TaginfoRegionalInstance> regionalInstances = Territories.getRegionalTaginfoUrls(center);
+        int newHashCode = regionalInstances.hashCode();
+        if (newHashCode == taginfoNationalHash) {
+            // taginfoNationalActions are still valid
+            return;
+        }
+        taginfoNationalHash = newHashCode;
         destroyTaginfoNationalActions();
-        if (!newSel.isEmpty()) {
-            final LatLon center = newSel.iterator().next().getBBox().getCenter();
-            Territories.getRegionalTaginfoUrls(center).stream()
-                    .map(taginfo -> taginfoAction.withTaginfoUrl(tr("Go to Taginfo ({0})", taginfo.toString()), taginfo.getUrl())
-                    ).forEach(taginfoNationalActions::add);
-            taginfoNationalActions.stream().map(membershipMenu::add).forEach(membershipMenuTagInfoNatItems::add);
-            taginfoNationalActions.stream().map(tagMenu::add).forEach(tagMenuTagInfoNatItems::add);
-        }
+        regionalInstances.stream()
+                .map(taginfo -> taginfoAction.withTaginfoUrl(tr("Go to Taginfo ({0})", taginfo.toString()), taginfo.getUrl()))
+                .forEach(taginfoNationalActions::add);
+        taginfoNationalActions.stream().map(membershipMenu::add).forEach(membershipMenuTagInfoNatItems::add);
+        taginfoNationalActions.stream().map(tagMenu::add).forEach(tagMenuTagInfoNatItems::add);
     }
 
