Index: applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/TagBufferAction.java
===================================================================
--- applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/TagBufferAction.java	(revision 29622)
+++ applications/editors/josm/plugins/utilsplugin2/src/org/openstreetmap/josm/plugins/utilsplugin2/actions/TagBufferAction.java	(revision 29672)
@@ -83,5 +83,6 @@
             tags.putAll(currentTags);
         }
-        rememberSelectionTags();
+        if( getCurrentDataSet() != null)
+            rememberSelectionTags();
 
         setEnabled(selection != null && !selection.isEmpty() && !tags.isEmpty());
@@ -89,8 +90,15 @@
 
     private void rememberSelectionTags() {
-        if( getCurrentDataSet() != null && !getCurrentDataSet().getSelected().isEmpty() ) {
+        // Fix #8350 - only care about tagged objects
+        Collection<OsmPrimitive> selectedTaggedObjects = new ArrayList<OsmPrimitive>(getCurrentDataSet().getSelected());
+        for (Iterator<OsmPrimitive> it = selectedTaggedObjects.iterator(); it.hasNext(); ) {
+            if (!it.next().isTagged()) {
+                it.remove();
+            }
+        }
+        if( !selectedTaggedObjects.isEmpty() ) {
             currentTags.clear();
             Set<String> bad = new HashSet<String>();
-            for( OsmPrimitive p : getCurrentDataSet().getSelected() ) {
+            for( OsmPrimitive p : selectedTaggedObjects ) {
                 if( currentTags.isEmpty() ) {
                     for( String key : p.keySet() )
