 		 */
 		public const fillStyle:DynamicFillStyle = newLinkableChild(this, DynamicFillStyle);
 
+		override public function drawPlot(recordKeys:Array, dataBounds:IBounds2D, screenBounds:IBounds2D, destination:BitmapData):void
+		{
+			tempPoint.x = NaN;
+			tempPoint.y = NaN;
+			super.drawPlot(recordKeys, dataBounds, screenBounds, destination);
+		}
+
 		/**
 		 * This function may be defined by a class that extends AbstractPlotter to use the basic template code in AbstractPlotter.drawPlot().
 		 */
 		override protected function addRecordGraphicsToTempShape(recordKey:IQualifiedKey, dataBounds:IBounds2D, screenBounds:IBounds2D, tempShape:Shape):void			
-		{			
+		{
+//			var hasPrevPoint:Boolean = (isFinite(tempPoint.x) && isFinite(tempPoint.y));
 			var graphics:Graphics = tempShape.graphics;
 			
-			// project data coordinates to screen coordinates and draw graphics			
+			// project data coordinates to screen coordinates and draw graphics
 			var radius:Number = ColumnUtils.getNorm(screenRadius, recordKey);
 			
 			tempPoint.x = getCoordFromRecordKey(recordKey, true);


package weave.visualization.plotters
{
	import flash.display.Graphics;
	import flash.display.Shape;
	import flash.geom.Point;

			
			dataBounds.projectPointTo(tempPoint, screenBounds);
			
			lineStyle.beginLineStyle(recordKey, graphics);
			fillStyle.beginFillStyle(recordKey, graphics);
			if (enabledSizeBy.value == true)
			{
				radius = minScreenRadius.value + (radius *(maxScreenRadius.value - minScreenRadius.value));
			}
			else
			{
				radius = defaultScreenRadius.value;
			}
//			if (hasPrevPoint)
//				graphics.lineTo(tempPoint.x, tempPoint.y);
			if (screenRadius.internalColumn != null && isNaN(radius)) // missing screenRadius value
			{
				radius = defaultScreenRadius.value;
				//draw a square for missing values
				graphics.drawRect(tempPoint.x - radius, tempPoint.y - radius, radius * 2, radius * 2);
			}
			else if(isNaN(radius)) // no screenRadius column
			{
				graphics.drawCircle(tempPoint.x, tempPoint.y, defaultScreenRadius.value );
			}
			else
			{
				graphics.drawCircle(tempPoint.x, tempPoint.y, radius);
			}
			graphics.endFill();
//			graphics.moveTo(tempPoint.x, tempPoint.y);
		}
		private static const tempPoint:Point = new Point(); // reusable object
	}
