 			plotManager.zoomBounds.getScreenBounds(tempScreenBounds);
 
 			// loop from bottom layer to top layer
-			for each (var name:String in plotManager.plotters.getNames())
+			layerLoop: for each (var name:String in plotManager.plotters.getNames())
 			{
 				var plotter:IPlotter = plotManager.plotters.getObject(name) as IPlotter;
 				var settings:LayerSettings = plotManager.getLayerSettings(name);

					setProbeKeys(lastActiveLayer, []);
			}
			// either not rolled over or nothing was probed
			_lastProbedQKey = null;
		}
		
		protected function setSelectionKeys(layerName:String, keys:Array, useMouseMode:Boolean = false):void
		{	
			if (!Weave.properties.enableToolSelection.value || !enableSelection.value)
				return;
			
			// set the probe filter to a new set of keys
			var settings:LayerSettings = plotManager.getLayerSettings(layerName);
			var keySet:KeySet = settings.selectionFilter.internalObject as KeySet;
			if (keySet != null)
			{	
				if (useMouseMode && _mouseMode == InteractionController.SELECT_ADD)
					keySet.addKeys(keys);
				else if (useMouseMode && _mouseMode == InteractionController.SELECT_REMOVE)
					keySet.removeKeys(keys);
				else
					keySet.replaceKeys(keys);
			}
		}
		
		protected function setProbeKeys(layerName:String, keys:Array):void

					continue;
				tempDataBounds.constrainBounds(queryBounds, false);
				
				var keys:Array = null;
				if (Weave.properties.selectionMode.value == InteractionController.SELECTION_MODE_RECTANGLE)
				{
					// if user has probed something and not dragged the mouse during selection, select only the probed shapes 
					if (!_lastProbedQKeys || !queryBounds.isEmpty())
						keys = plotManager.hack_getSpatialIndex(name).getKeysGeometryOverlap(queryBounds, minImportance, false, tempDataBounds);
				}
				else if (Weave.properties.selectionMode.value == InteractionController.SELECTION_MODE_CIRCLE)
				{
