Index: trunk/src/org/openstreetmap/josm/actions/relation/DownloadMembersAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/DownloadMembersAction.java	(revision 13445)
+++ trunk/src/org/openstreetmap/josm/actions/relation/DownloadMembersAction.java	(revision 13446)
@@ -47,5 +47,6 @@
     @Override
     protected void updateEnabledState() {
-        setEnabled(!relations.isEmpty() && !Main.isOffline(OnlineResource.OSM_API));
+        setEnabled(!relations.isEmpty() && !Main.isOffline(OnlineResource.OSM_API)
+                && !relations.iterator().next().getDataSet().isReadOnly());
     }
 }
Index: trunk/src/org/openstreetmap/josm/actions/relation/DownloadSelectedIncompleteMembersAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/DownloadSelectedIncompleteMembersAction.java	(revision 13445)
+++ trunk/src/org/openstreetmap/josm/actions/relation/DownloadSelectedIncompleteMembersAction.java	(revision 13446)
@@ -67,5 +67,6 @@
     @Override
     protected void updateEnabledState() {
-        setEnabled(!relations.isEmpty() && !incompleteMembers.isEmpty() && !Main.isOffline(OnlineResource.OSM_API));
+        setEnabled(!relations.isEmpty() && !incompleteMembers.isEmpty() && !Main.isOffline(OnlineResource.OSM_API)
+                && !relations.iterator().next().getDataSet().isReadOnly());
     }
 }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PresetListPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PresetListPanel.java	(revision 13445)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PresetListPanel.java	(revision 13446)
@@ -41,5 +41,5 @@
             int answer = t.showDialog(selection, false);
 
-            if (answer == TaggingPreset.DIALOG_ANSWER_APPLY) {
+            if (answer == TaggingPreset.DIALOG_ANSWER_APPLY && !selection.iterator().next().getDataSet().isReadOnly()) {
                 presetHandler.updateTags(t.getChangedTags());
             }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 13445)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 13446)
@@ -1271,5 +1271,5 @@
             Collection<OsmPrimitive> sel = Main.main.getInProgressSelection();
             String clipboard = ClipboardUtils.getClipboardStringContent();
-            if (sel.isEmpty() || clipboard == null)
+            if (sel.isEmpty() || clipboard == null || sel.iterator().next().getDataSet().isReadOnly())
                 return;
             MainApplication.undoRedo.add(new ChangePropertyCommand(sel, key, Utils.strip(clipboard)));
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java	(revision 13445)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java	(revision 13446)
@@ -493,5 +493,5 @@
 
             answer = new PresetDialog(p, title, preset_name_label ? null : (ImageIcon) getValue(Action.SMALL_ICON),
-                    sel.isEmpty(), showNewRelation).getValue();
+                    sel.isEmpty() || sel.iterator().next().getDataSet().isReadOnly(), showNewRelation).getValue();
         }
         if (!showNewRelation && answer == 2)
