Index: /trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 13955)
+++ /trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 13956)
@@ -532,5 +532,5 @@
         } else {
             DataSet ds = layerManager.getActiveDataSet();
-            if (ds == null) return null;
+            if (ds == null) return Collections.emptyList();
             return ds.getSelected();
         }
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/AbstractCopyAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/AbstractCopyAction.java	(revision 13955)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/AbstractCopyAction.java	(revision 13956)
@@ -46,10 +46,8 @@
         Set<String> values = new TreeSet<>();
         Collection<? extends Tagged> sel = objectSupplier.get();
-        if (rows.length == 0 || sel.isEmpty()) return;
+        if (rows.length == 0 || sel == null || sel.isEmpty()) return;
 
         for (int row: rows) {
             String key = keySupplier.apply(row);
-            if (sel.isEmpty())
-                return;
             for (Tagged p : sel) {
                 Collection<String> s = getString(p, key);
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 13955)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java	(revision 13956)
@@ -67,4 +67,5 @@
 import org.openstreetmap.josm.data.osm.IRelationMember;
 import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmData;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Relation;
@@ -182,9 +183,9 @@
     private final PasteValueAction pasteValueAction = new PasteValueAction();
     private final CopyValueAction copyValueAction = new CopyValueAction(
-            tagTable, editHelper::getDataKey, Main.main::getInProgressSelection);
+            tagTable, editHelper::getDataKey, Main.main::getInProgressISelection);
     private final CopyKeyValueAction copyKeyValueAction = new CopyKeyValueAction(
-            tagTable, editHelper::getDataKey, Main.main::getInProgressSelection);
+            tagTable, editHelper::getDataKey, Main.main::getInProgressISelection);
     private final CopyAllKeyValueAction copyAllKeyValueAction = new CopyAllKeyValueAction(
-            tagTable, editHelper::getDataKey, Main.main::getInProgressSelection);
+            tagTable, editHelper::getDataKey, Main.main::getInProgressISelection);
     private final SearchAction searchActionSame = new SearchAction(true);
     private final SearchAction searchActionAny = new SearchAction(false);
@@ -650,5 +651,5 @@
         membershipTable.setVisible(membershipData.getRowCount() > 0);
 
-        DataSet ds = Main.main.getActiveDataSet();
+        OsmData<?, ?, ?, ?> ds = MainApplication.getLayerManager().getActiveData();
         boolean isReadOnly = ds != null && ds.isLocked();
         boolean hasSelection = !newSel.isEmpty();
