  	    case `remove: {
  		list<any> tmp1 = (list<any>) UI::QueryWidget(`id(`selected), `SelectedItems);
  		selected = filter(any tmp2, selected, { return !contains(tmp1, tmp2); });
-@@ -500,7 +519,32 @@ list<string> reverse( list<string> v )
+@@ -500,7 +516,32 @@ list<string> reverse( list<string> v )
  
  	    } break;
  

 
     include "partitioning/ep-lib.ycp";
     include "partitioning/custom_part_lib.ycp";
@@ -54,27 +64,7 @@ be mounted and enter the mount point (/, /boot, /home, /var, etc.).</p>");
 	return helptext;
     }
 
-
-    symbol MiniWorkflowStepFormatMount(map<string, any> &orig_data)
-    {
-	map<string, any> data = orig_data;
-	map d = Storage::GetDiskPartition(data["device"]:"");
-	string lbl = Storage::GetTargetMap()[d["disk"]:"","label"]:"";
-	y2milestone("MiniWorkflowStepFormatMount label:%1 data:%2", lbl, data);
-
-        //retrieve all filesystems
-	map<symbol, map<symbol, any> > all_filesystems = FileSystems::GetAllFileSystems(true, true,lbl);
-	if( data["type"]:`primary==`btrfs )
-	    {
-	    // multi volume btrfs filesystem can only be formatted as btrfs 
-	    all_filesystems = (map<symbol, map<symbol, any> >)filter( symbol s, map p, all_filesystems, ``(s==`btrfs) );
-	    }
-	if( data["type"]:`primary==`tmpfs )
-	    {
-	    all_filesystems[`tmpfs] = FileSystems::GetTmpfsFilesystem();
-	    }
-
-	list <string> ProposeMountpoints( symbol used_fs, string current_mp )
+list <string> ProposeMountpoints( symbol used_fs, string current_mp, map<symbol, map<symbol, any> > &all_filesystems )
 	{
 	    map <symbol, any> fs_data = all_filesystems[used_fs]: $[];
 
@@ -91,10 +81,9 @@ be mounted and enter the mount point (/, /boot, /home, /var, etc.).</p>");
 		return ( list <string> ) union( [current_mp], not_used );
 	   }
 	}
-
 	// disable Options p.b. if no fs options can be set
 	// disable Encrypt box if fs doesn't support encryption
-	void EnableDisableFsOpts( symbol used_fs )
+	void EnableDisableFsOpts( symbol used_fs, map<symbol, map<symbol, any> > &all_filesystems, map<string, any> &data )
 	{
 	    map <symbol, any> fs_data = all_filesystems[used_fs]: $[];
 	    ChangeWidgetIfExists(`fs_options, `Enabled, fs_data[`options]:[] != []);
@@ -104,18 +93,7 @@ be mounted and enter the mount point (/, /boot, /home, /var, etc.).</p>");
 				 !data["pool"]:false );
 	}
 
-	boolean do_format = data["format"]:false;
-	symbol used_fs = data["used_fs"]:`unknown;
-	symbol default_crypt_fs = data["type"]:`unknown == `loop ? `luks : `none;
-	boolean crypt_fs = data["enc_type"]:default_crypt_fs != `none;
-	boolean orig_crypt_fs = crypt_fs;
-	string mount = data["mount"]:"";
-	boolean do_mount = mount != "";
-	if( data["type"]:`unknown == `loop || data["type"]:`unknown == `tmpfs)
-	    do_mount = true;
-
-
-	boolean AskPassword()
+	boolean AskPassword( map<string, any> &data, boolean crypt_fs, boolean orig_crypt_fs, boolean do_mount, boolean do_format )
 	{
 	    y2milestone( "AskPassword data:%1", data );
 	    boolean ret = crypt_fs;
@@ -129,6 +107,40 @@ be mounted and enter the mount point (/, /boot, /home, /var, etc.).</p>");
 	    return( ret );
 	}
 
+    symbol MiniWorkflowStepFormatMount(map<string, any> &orig_data)
+    {
+	map<string, any> data = orig_data;
+	map d = Storage::GetDiskPartition(data["device"]:"");
+	string lbl = Storage::GetTargetMap()[d["disk"]:"","label"]:"";
+	y2milestone("MiniWorkflowStepFormatMount label:%1 data:%2", lbl, data);
+
+        //retrieve all filesystems
+	map<symbol, map<symbol, any> > all_filesystems = FileSystems::GetAllFileSystems(true, true,lbl);
+	if( data["type"]:`primary==`btrfs )
+	    {
+	    // multi volume btrfs filesystem can only be formatted as btrfs 
+	    all_filesystems = (map<symbol, map<symbol, any> >)filter( symbol s, map p, all_filesystems, ``(s==`btrfs) );
+	    }
+	if( data["type"]:`primary==`tmpfs )
+	    {
+	    all_filesystems[`tmpfs] = FileSystems::GetTmpfsFilesystem();
+	    }
+
+	
+
+
+
+	boolean do_format = data["format"]:false;
+	symbol used_fs = data["used_fs"]:`unknown;
+	symbol default_crypt_fs = data["type"]:`unknown == `loop ? `luks : `none;
+	boolean crypt_fs = data["enc_type"]:default_crypt_fs != `none;
+	boolean orig_crypt_fs = crypt_fs;
+	string mount = data["mount"]:"";
+	boolean do_mount = mount != "";
+	if( data["type"]:`unknown == `loop || data["type"]:`unknown == `tmpfs)
+	    do_mount = true;
+
+
 	/* MiniWorkflowStepPartitionSize data:
 		$["create":true,
 		  "cyl_size":8225280,
@@ -206,7 +218,7 @@ be mounted and enter the mount point (/, /boot, /home, /var, etc.).</p>");
 	    `ReplacePoint( `id(`subvol_rp), 
 			   SubvolPart(data["used_fs"]:`unknown==`btrfs) );
 
-	list mountpoints = ProposeMountpoints( used_fs, mount );
+	list mountpoints = ProposeMountpoints( used_fs, mount, all_filesystems );
 
 	term contents = `HVSquash(
 	                    `HBox( fmt,
@@ -236,7 +248,7 @@ be mounted and enter the mount point (/, /boot, /home, /var, etc.).</p>");
 
 	MiniWorkflow::SetContents(Greasemonkey::Transform(contents), MiniWorkflowStepFormatMountHelptext());
 
-	MiniWorkflow::SetLastStep(!AskPassword());
+	MiniWorkflow::SetLastStep(!AskPassword(data, crypt_fs, orig_crypt_fs, do_mount, do_format));
 
 	ChangeWidgetIfExists( `format, `Value, do_format ? `do_format : `do_not_format);
 	ChangeWidgetIfExists( `do_format, `Enabled, !data["pool"]:false);
@@ -245,7 +257,7 @@ be mounted and enter the mount point (/, /boot, /home, /var, etc.).</p>");
 	ChangeWidgetIfExists( `do_not_format_attachment, `Enabled, !do_format );
 
 	if( do_format)
-	   EnableDisableFsOpts(used_fs);
+	   EnableDisableFsOpts(used_fs, all_filesystems, data);
 
 	//not there on s390s
 	ChangeWidgetIfExists( `crypt_fs, `Value, crypt_fs );
@@ -273,7 +285,6 @@ be mounted and enter the mount point (/, /boot, /home, /var, etc.).</p>");
 	    {
 		//user has chosen different filesystem
 		case `fs:
-		{
 		    used_fs = (symbol) UI::QueryWidget(`id(`fs), `Value);
 
 		    //retrieve info about fs user has selected
@@ -294,15 +305,14 @@ be mounted and enter the mount point (/, /boot, /home, /var, etc.).</p>");
 			//suggest some nice mountpoints if user wants to mount this partition
 			if (do_mount)
 			{
-			    UI::ChangeWidget(`id(`mount_point), `Items, ProposeMountpoints( used_fs, mount ));
+			    UI::ChangeWidget(`id(`mount_point), `Items, ProposeMountpoints( used_fs, mount, all_filesystems ));
 			}
-		    }
-		    break;
 		}
+		    break;
 
 		case `crypt_fs:
 		    crypt_fs = (boolean) UI::QueryWidget(`id(`crypt_fs), `Value);
-		    MiniWorkflow::SetLastStep(!AskPassword());
+		    MiniWorkflow::SetLastStep(!AskPassword(data, crypt_fs, orig_crypt_fs, do_mount, do_format));
 		    break;
 
 		    /* already done in HandlePartWidgetChanges
@@ -332,16 +342,16 @@ be mounted and enter the mount point (/, /boot, /home, /var, etc.).</p>");
 
 		    UI::ChangeWidget(`id(`do_format_attachment), `Enabled, true);
 		    ChangeWidgetIfExists(`do_not_format_attachment, `Enabled, false);
-		    EnableDisableFsOpts( data["used_fs"]:`none);
+		    EnableDisableFsOpts( data["used_fs"]:`none, all_filesystems, data);
 		    UI::SetFocus(`id(`fs));
-		    MiniWorkflow::SetLastStep(!AskPassword());
+		    MiniWorkflow::SetLastStep(!AskPassword(data, crypt_fs, orig_crypt_fs, do_mount, do_format));
 		    break;
 
 		case `do_not_format:
 		    do_format = (boolean) UI::QueryWidget(`id(`do_format), `Value);
 		    UI::ChangeWidget(`id(`do_format_attachment), `Enabled, false);
 		    ChangeWidgetIfExists(`do_not_format_attachment, `Enabled, true);
-		    MiniWorkflow::SetLastStep(!AskPassword());
+		    MiniWorkflow::SetLastStep(!AskPassword(data, crypt_fs, orig_crypt_fs, do_mount, do_format));
 		    break;
 
 		case `fsid_point:
@@ -354,13 +364,13 @@ be mounted and enter the mount point (/, /boot, /home, /var, etc.).</p>");
 		    UI::SetFocus(`id(`mount_point));
 		    //propose mountpoints
 		    //UI::ChangeWidget(`id(`mount_point), `Items, ProposeMountpoints( used_fs, mount ));
-		    MiniWorkflow::SetLastStep(!AskPassword());
+		    MiniWorkflow::SetLastStep(!AskPassword(data, crypt_fs, orig_crypt_fs, do_mount, do_format));
 		    break;
 
 		case `do_not_mount:
 		    do_mount = false;
 		    UI::ChangeWidget(`id(`do_mount_attachment), `Enabled, false);
-		    MiniWorkflow::SetLastStep(!AskPassword());
+		    MiniWorkflow::SetLastStep(!AskPassword(data, crypt_fs, orig_crypt_fs, do_mount, do_format));
 		    break;
 
 		case `next:
@@ -477,7 +487,7 @@ Also check the format option.
 		if (data["fsid"]:0 != orig_data["fsid"]:0)
 		    data["change_fsid"] = true;
 
-	    if (!AskPassword())
+	    if (!AskPassword(data, crypt_fs, orig_crypt_fs, do_mount, do_format))
 		widget = `finish;
 
 	    orig_data = data;
@@ -724,8 +734,21 @@ because the filesystem seems to be inconsistent.
 	switch (data["type"]:`unknown)
 	{

 	    }
 	}
 
diff --git a/src/modules/StorageIcons.ycp b/src/modules/StorageIcons.ycp
index f52706f..968ac05 100644
--- a/src/modules/StorageIcons.ycp
