diff --git a/includes/t-tasks/controllers.inc.php b/includes/t-tasks/controllers.inc.php
index de5862d..263a0fd 100644
--- a/includes/t-tasks/controllers.inc.php
+++ b/includes/t-tasks/controllers.inc.php
@@ -531,6 +531,8 @@ class Ctrl_DependencyAddFiltering
 	extends Controller
 	implements FormAware
 {
+	private static $fields = array( 'text' , 'state' , 'items' , 'item-children' , 'keep' );
+
 	private $filtering;
 	private $selector;
 	private $task;
@@ -553,6 +555,11 @@ class Ctrl_DependencyAddFiltering
 		$this->filterTaskDependencies( );
 		$this->addDependencySelector( );
 		$this->copyFiltersToSelector( );
+		if ( $this->getField( 'keep' ) ) {
+			$this->saveToSession( );
+		} elseif ( array_key_exists( 'add-dep-filters' , $_SESSION ) ) {
+			unset( $_SESSION[ 'add-dep-filters' ] );
+		}
 		return null;
 	}
 
@@ -679,8 +686,7 @@ class Ctrl_DependencyAddFiltering
 
 	private function copyFiltersToSelector( )
 	{
-		$fields = array( 'text' , 'state' , 'items' , 'item-children' );
-		foreach ( $fields as $f ) {
+		foreach ( Ctrl_DependencyAddFiltering::$fields as $f ) {
 			$v = $this->getField( $f );
 			$this->selector->addField(
 				Loader::Create( 'Field' , 'filters-' . $f , 'hidden' )
@@ -689,10 +695,25 @@ class Ctrl_DependencyAddFiltering
 		}
 	}
 
+	private function saveToSession( )
+	{
+		if ( array_key_exists( 'add-dep-filters' , $_SESSION ) ) {
+			$values = $_SESSION[ 'add-dep-filters' ];
+		} else {
+			$values = array( );
+		}
+		foreach ( Ctrl_DependencyAddFiltering::$fields as $f ) {
+			$fld = $this->filtering->field( $f );
+			if ( $fld !== null ) {
+				$values[ $f ] = $fld->value( );
+			}	
+		}
+		$_SESSION[ 'add-dep-filters' ] = $values;
+	}
+
 	public function getFiltersFromSelector( )
 	{
-		$fields = array( 'text' , 'state' , 'items' , 'item-children' );
-		foreach ( $fields as $f ) {
+		foreach ( Ctrl_DependencyAddFiltering::$fields as $f ) {
 			$field = $this->filtering->field( $f );
 			if ( $field !== null ) {
 				$fv = $this->getParameter( 'filters-' . $f , 'POST' );
@@ -701,6 +722,22 @@ class Ctrl_DependencyAddFiltering
 		}
 	}
 
+	public function getFiltersFromSession( )
+	{
+		if ( !array_key_exists( 'add-dep-filters' , $_SESSION ) ) {
+			return;
+		}
+		$values = $_SESSION[ 'add-dep-filters' ];
+		foreach ( Ctrl_DependencyAddFiltering::$fields as $f ) {
+			if ( array_key_exists( $f , $values ) ) {
+				$field = $this->filtering->field( $f );
+				if ( $field != null ) {
+					$field->setFormValue( $values[ $f ] );
+				}
+			}
+		}
+	}
+
 	private function getField( $name )
 	{
 		$fld = $this->filtering->field( $name );
diff --git a/includes/t-tasks/page_controllers.inc.php b/includes/t-tasks/page_controllers.inc.php
index 5d469b5..9803f2b 100644
--- a/includes/t-tasks/page_controllers.inc.php
+++ b/includes/t-tasks/page_controllers.inc.php
@@ -488,6 +488,8 @@ class Ctrl_DependencyAddForm
 		}
 		if ( $submitted !== null ) {
 			$fCtrl->getFiltersFromSelector( );
+		} else {
+			$fCtrl->getFiltersFromSession( );
 		}
 
 		// Fake handling the form
@@ -527,6 +529,11 @@ class Ctrl_DependencyAddForm
 					->addOption( '1' , 'Yes' )
 					->addOption( '0' , 'No' ) );
 		}
+		$filters->addField( Loader::Create( 'Field' , 'keep' , 'select' )
+			->setMandatory( false )
+			->setDescription( 'Keep these filters for next time' )
+			->addOption( '0' , 'No' )
+			->addOption( '1' , 'Yes' ) );
 		return $filters;
 	}