Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 14668)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 14669)
@@ -27,4 +27,5 @@
 import java.util.TreeMap;
 import java.util.TreeSet;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import javax.swing.AbstractAction;
@@ -1098,4 +1099,5 @@
      */
     class AddAction extends JosmAction {
+        AtomicBoolean isPerforming = new AtomicBoolean(false);
         AddAction() {
             super(tr("Add"), /* ICON() */ "dialogs/add", tr("Add a new key/value pair to all objects"),
@@ -1105,13 +1107,13 @@
 
         @Override
-        public synchronized void actionPerformed(ActionEvent e) {
-            if (!isEnabled())
+        public void actionPerformed(ActionEvent e) {
+            if (isPerforming.get())
                 return;
-            setEnabled(false);
+            isPerforming.set(true);
             try {
                 editHelper.addTag();
                 btnAdd.requestFocusInWindow();
             } finally {
-                setEnabled(true);
+                isPerforming.set(false);
             }
         }
@@ -1122,4 +1124,5 @@
      */
     class EditAction extends JosmAction implements ListSelectionListener {
+        AtomicBoolean isPerforming = new AtomicBoolean(false);
         EditAction() {
             super(tr("Edit"), /* ICON() */ "dialogs/edit", tr("Edit the value of the selected key for all objects"),
@@ -1130,8 +1133,8 @@
 
         @Override
-        public synchronized void actionPerformed(ActionEvent e) {
-            if (!isEnabled())
+        public void actionPerformed(ActionEvent e) {
+            if (isPerforming.get())
                 return;
-            setEnabled(false);
+            isPerforming.set(true);
             try {
                 if (tagTable.getSelectedRowCount() == 1) {
@@ -1143,5 +1146,5 @@
                 }
             } finally {
-                setEnabled(true);
+                isPerforming.set(false);
             }
         }
