 				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 passes			: Array				= _passes.concat();
			var clearedTargets	: Dictionary		= new Dictionary(true);
			
			for (passId = 0; passId < numPasses; ++passId)
			{
				var pass			: ShaderInstance	= passes[passId];
				var calls 			: Array				= _passInstanceToDrawCalls[pass];
				var settings		: ShaderSettings	= pass.settings;
				var renderTarget 	: RenderTarget 		= settings.renderTarget || backBuffer;
