 					// round coordinates for faster & more consistent rendering
 					tempPoint.x = Math.round(tempPoint.x);
 					tempPoint.y = Math.round(tempPoint.y);
-					if (pointDataImageColumn.getInternalColumn())
-					{
-						var bitmapData:BitmapData = pointDataImageColumn.getValueFromKey(key) || _missingImage;
-						var imgWidth:Number = useFixedImageSize.value ? iconSize.value : bitmapData.width;
-						var imgHeight:Number = useFixedImageSize.value ? iconSize.value : bitmapData.height;
-						tempMatrix.identity();
-						if (useFixedImageSize.value)
-							tempMatrix.scale(iconSize.value / bitmapData.width, iconSize.value / bitmapData.height);
-						tempMatrix.translate(tempPoint.x - imgWidth / 2, tempPoint.y - imgHeight / 2);
-						outputBitmapData.draw(bitmapData, tempMatrix, null, null, null, true);
-					}
-					else
-					{
-						drawCircle(outputBitmapData, fill.color.getValueFromKey(key, Number), tempPoint.x, tempPoint.y);
-					}
+					drawCircle(outputBitmapData, fill.color.getValueFromKey(key, Number), tempPoint.x, tempPoint.y);
 				}
 				return;
 			}
 
 			// prevent moveTo/lineTo from drawing a filled polygon if the shape type is line
-			if (shapeType == GeometryType.LINE)
+			if (geomType == GeometryType.LINE)
 				outputGraphics.endFill();
 
 			var numPoints:int = points.length;


		/**
		 * This function draws a list of GeneralizedGeometry objects
		 * @param geometryParts A 2-dimensional Array or Vector of objects, each having x and y properties.
		 */
		private function drawMultiPartShape(key:IQualifiedKey, geometryParts:Object, shapeType:String, dataBounds:IBounds2D, screenBounds:IBounds2D, graphics:Graphics, bitmapData:BitmapData):void
		{
			for (var i:int = 0; i < geometryParts.length; i++)
				drawShape(key, geometryParts[i], shapeType, dataBounds, screenBounds, graphics, bitmapData);
		}
		/**
		 * This function draws a single geometry.
		 * @param points An Array or Vector of objects, each having x and y properties.
		 */
		private function drawShape(key:IQualifiedKey, points:Object, shapeType:String, dataBounds:IBounds2D, screenBounds:IBounds2D, outputGraphics:Graphics, outputBitmapData:BitmapData):void
		{
			if (points.length == 0)
				return;

			var currentNode:Object;

			if (shapeType == GeometryType.POINT)
			{
				for each (currentNode in points)
				{

				outputGraphics.lineTo(x, y);
			}
			
			if (!debug)
				if (geomType == GeometryType.POLYGON)
					outputGraphics.lineTo(firstX, firstY);
		}
		
		private function drawImage(key:IQualifiedKey, dataX:Number, dataY:Number, dataBounds:IBounds2D, screenBounds:IBounds2D, outputGraphics:Graphics, outputBitmapData:BitmapData):void
		{
			tempPoint.x = dataX;
			tempPoint.y = dataY;
			dataBounds.projectPointTo(tempPoint, screenBounds);
			// round coordinates for faster & more consistent rendering
			tempPoint.x = Math.round(tempPoint.x);
			tempPoint.y = Math.round(tempPoint.y);
			
			var bitmapData:BitmapData = pointDataImageColumn.getValueFromKey(key) || _missingImage;
			var w:Number = bitmapData.width;
			var h:Number = bitmapData.height;
			tempMatrix.identity();
			if (useFixedImageSize.value)
			{
				var maxSize:Number = Math.max(w, h);
				var scale:Number = iconSize.value / maxSize;
				tempMatrix.scale(scale, scale);
				tempMatrix.translate(Math.round(Math.abs(maxSize - w) / 2), Math.round(Math.abs(maxSize - h) / 2));
				w = h = iconSize.value;
			}
			tempMatrix.translate(Math.round(tempPoint.x - w / 2), Math.round(tempPoint.y - h / 2));
			outputBitmapData.draw(bitmapData, tempMatrix, null, null, null, true);
		}
		
		public function dispose():void
