 				clearedTargets[renderTarget] = true;
 				
 				if (!pass.settings.enabled || !pass.shader.enabled || !calls)
+                {
+                    previous = pass;
 					continue;
+                }
 				
 				++_numEnabledPasses;
 				

				// sort draw calls if necessary
				if (pass.settings.depthSortDrawCalls)
				{
					for (var k : uint = 0; k < numCalls; ++k)
						sortValues[k] = -(calls[k] as DrawCall).depth;
					
					Sort.flashSort(sortValues, calls, numCalls);
				}

			var numTriangles	: uint 				= 0;
			
			var sortValues 		: Vector.<Number> 	= TMP_NUMBERS;
			var passId			: uint				= 0;
			
			context.enableErrorChecking = (Minko.debugLevel & DebugLevel.CONTEXT) != 0;
            
			// sort passes
			if (!_passesAreSorted && numPasses > 1)
			{
				for (passId = 0; passId < numPasses; ++passId)
					sortValues[passId] = -(_passes[passId] as ShaderInstance).settings.priority;
				
				Sort.flashSort(sortValues, _passes, numPasses);
				_passesAreSorted = true;
