# don't rely on $PWD here, as old shells don't set it
 temp_root=`pwd`/tmp_check
+rm -rf "$temp_root"
+mkdir "$temp_root"
 
 : ${oldbindir=$bindir}
 
 BASE_PGDATA="$temp_root/data"
 PGDATA="${BASE_PGDATA}.old"
 export PGDATA
-rm -rf "$BASE_PGDATA" "$PGDATA"
 
 logdir=`pwd`/log
 rm -rf "$logdir"
 
        $ENV{PGHOST} = 'localhost';
        $ENV{PGPORT} ||= 50432;
        my $tmp_root = "$topdir/src/bin/pg_upgrade/tmp_check";
-       (mkdir $tmp_root || die $!) unless -d $tmp_root;
+       rmtree($tmp_root);
+       mkdir $tmp_root || die $!;
        my $upg_tmp_install = "$tmp_root/install";    # unshared temp install
        print "Setting up temp install\n\n";
        Install($upg_tmp_install, "all", $config);
        my $data = "$tmp_root/data";
        $ENV{PGDATA} = "$data.old";
        my $logdir = "$topdir/src/bin/pg_upgrade/log";
-       (mkdir $logdir || die $!) unless -d $logdir;
+       rmtree($logdir);
+       mkdir $logdir || die $!;
        print "\nRunning initdb on old cluster\n\n";
        standard_initdb() or exit 1;
        print "\nStarting old cluster\n\n";