Index: /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 13443)
+++ /trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 13444)
@@ -265,6 +265,5 @@
 
         virtualManager.clear();
-        if ((mode == Mode.MOVE || mode == Mode.SELECT)
-                && !dragInProgress() && virtualManager.activateVirtualNodeNearPoint(e.getPoint())) {
+        if (mode == Mode.MOVE && !dragInProgress() && virtualManager.activateVirtualNodeNearPoint(e.getPoint())) {
             DataSet ds = getLayerManager().getActiveDataSet();
             if (ds != null && drawTargetHighlight) {
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java	(revision 13443)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/AbstractMapRenderer.java	(revision 13444)
@@ -128,5 +128,5 @@
      */
     public void drawVirtualNodes(DataSet data, BBox bbox) {
-        if (virtualNodeSize == 0 || data == null || bbox == null)
+        if (virtualNodeSize == 0 || data == null || bbox == null || data.isReadOnly())
             return;
         // print normal virtual nodes
