 					//plot the point to the current bitmapdata
 					renderer.plotPoint(point,dPt,ds.pollutant,selections.isSelected(point));
 					_prevPos[ds.dataURI] = dPt;
+					_prevVal[ds.dataURI] = point.value;
 				}
 				_prevMaxPtNums[ds.dataURI] = Math.max(i - 1,0);
 			}

		        else {
		            plotBitmapData.fillRect(new Rectangle(0,0,plotBitmapData.width,plotBitmapData.height),0x00000000);
		        }
		        _prevPos = {};	
			}
	        
			//prep the renderer we'll use to draw points
			var renderer:PointRenderer = new PointRenderer(plotBitmapData,pointDiameter,pointOverlapTolerance);
			
			plotBitmapData.lock();
			

					//skip if position not different different from last plotted point
					if(!selections.isSelected(point) && _prevPos[ds.dataURI]
							&& Math.abs(_prevPos[ds.dataURI].x - dPt.x) < pointOverlapTolerance 
							&& Math.abs(_prevPos[ds.dataURI].y - dPt.y) < pointOverlapTolerance
							&& !(point.value > AirQualityColors.POLLUTANT_INDEX[ds.pollutant][2])){ 
							// could add a && _prevVal[ds.dataURI] == point.value here as additional check to see if previous value is sufficiently different
							// for now we deal with the "making spikes obvious" problem by just showing anything that looks red or worse.
						continue;
					}
					
