 								// skip shapes that are considered unimportant at this zoom level
 								if (geom.geomType == GeneralizedGeometry.GEOM_TYPE_POLYGON && geom.bounds.getArea() < task.minImportance)
 									continue;
+								if (!styleSet)
+								{
+									graphics.clear();
+									fill.beginFillStyle(recordKey, graphics);
+									line.beginLineStyle(recordKey, graphics);
+									styleSet = true;
+								}
 								drawMultiPartShape(recordKey, geom.getSimplifiedGeometry(task.minImportance, task.dataBounds), geom.geomType, task.dataBounds, task.screenBounds, graphics, task.destination);
 							}
 						}
-						graphics.endFill();
 						try
 						{
-							task.destination.draw(tempShape);
+							if (styleSet)
+							{
+								graphics.endFill();
+								task.destination.draw(tempShape);
+							}
 						}
 						catch (e:Error)
 						{

			WeaveAPI.StageUtils.startTask(this, task.iterate, WeaveAPI.TASK_PRIORITY_RENDERING);
		}
		
		private function generateTaskIterator(task:PlotTask):Function
		{
			return function():Number

					if (value is Array)
						geoms = value;
					else if (value is GeneralizedGeometry)
					{
						geoms = _singleGeom;
						_singleGeom[0] = value;
					}
					
					if (geoms && geoms.length > 0)
					{
						var graphics:Graphics = tempShape.graphics;
						var styleSet:Boolean = false;
						
						// draw the geom
						for (var i:int = 0; i < geoms.length; i++)
