diff --git a/utils/t/100_update_alternatives.t b/utils/t/100_update_alternatives.t
index 713f177..a99dd8c 100644
--- a/utils/t/100_update_alternatives.t
+++ b/utils/t/100_update_alternatives.t
@@ -81,7 +81,7 @@ my @choices = (
 );
 my $nb_slaves = 4;
 plan tests => (4 * ($nb_slaves + 1) + 2) * 26 # number of check_choices
-               + 100;                         # rest
+               + 110;                         # rest
 
 sub cleanup {
     system("rm -rf $tmpdir && mkdir -p $admindir && mkdir -p $altdir");
@@ -485,3 +485,17 @@ ok(-f "$bindir/slave2", "install + switching keeps real files installed as slave
 set_choice(1, params => ["--force"]);
 ok(!-e "$bindir/slave2", "forced switching w/o slave drops real files installed as slave links");
 check_choice(1, "manual", "set --force replaces files with links");
+
+# test management of pre-existing files #4
+cleanup();
+system("touch $bindir/slave2");
+install_choice(2);
+set_choice(2);
+install_choice(0);
+ok(!-l "$bindir/slave2", "inactive install preserves files that should be slave links");
+ok(-f "$bindir/slave2", "inactive install keeps real files installed as slave links");
+install_choice(0, params => ["--force"]);
+ok(!-l "$bindir/slave2", "forced inactive install preserves files that should be slave links");
+ok(-f "$bindir/slave2", "forced inactive install keeps real files installed as slave links");
+remove_all_choices(params => ["--force"]);
+ok(-f "$bindir/slave2", "forced removeall keeps real files installed as slave links");
