--- drake/lib/cake_embedded_dispatcher.class.php	2007-05-10 17:35:32.000000000 -0700
+++ drake/lib/cake_embedded_dispatcher.class.NEW.php	2007-05-10 17:37:06.000000000 -0700
@@ -168,9 +168,19 @@ class CakeEmbeddedDispatcher
 	 * @access public
 	 * @since 1.0
 	 */
-	function setIgnoreParameters($ignoreParameters)
+	function setIgnoreParameters($ignoreParameters = array())
 	{
-		$this->ignoreParameters = $ignoreParameters;
+	    foreach ($ignoreParameters as $parameter)
+	    {
+	        if (isset($_GET[$parameter]))
+	        {
+	            $this->ignoreParameters[] = array($parameter => $_GET[$parameter]);
+	        }
+	        elseif (isset($_REQUEST[$parameter]))
+	        {
+	            $this->ignoreParameters[] = array($parameter => $_REQUEST[$parameter]);
+	        }
+	    }
 	}
 	
 	/**
@@ -283,10 +293,10 @@ class CakeEmbeddedDispatcher
 		
 		if (isset($this->ignoreParameters))
 		{
-			foreach($this->ignoreParameters as $parameter)
+			foreach($this->ignoreParameters as $key => $value)
 			{
-				unset($_REQUEST[$parameter]);
-				unset($_GET[$parameter]);
+				unset($_REQUEST[$key]);
+				unset($_GET[$key]);
 			}
 		}
 		
@@ -327,6 +337,18 @@ class CakeEmbeddedDispatcher
 	 */
 	function _finish($url)
 	{
+		
+		// Restore parameters
+		
+		if (isset($this->ignoreParameters))
+		{
+			foreach($this->ignoreParameters as $key => $value)
+			{
+				$_REQUEST[$key] = $value;
+				$_GET[$key] = $value;
+			}
+		}
+		
 		// Restore session
 		
 		if ($this->restoreSession && isset($this->backSession) && isset($this->backSession['data']))
