 			}
 		}
 		
-		private function asyncInit():void
-		{
+		/**
+		 * @return true if shouldBeRendered() returns true.
+		 */
+		private function asyncInit():Boolean
+		{
+			var shouldRender:Boolean = shouldBeRendered();
 			if (_delayInit)
 			{
 				_pendingInit = true;
-				return;
+				return shouldRender;
 			}
 			_pendingInit = false;
 			
 			_progress = 0;
 			_iteration = 0;
 			_iPendingKey = 0;
-			if (shouldBeRendered())
+			if (shouldRender)
 			{
 				_pendingKeys = _plotter.filteredKeySet.keys;
 				_recordKeys = [];

		
		private function asyncStart():void
		{
			asyncInit();
			if (shouldBeRendered())
			{
				if (debug)
					trace(this, 'begin async rendering');

				_pendingKeys = null;
				_recordKeys = null;
			}
			return shouldRender;
		}
		
		private function asyncIterate(stopTime:int):Number
