diff --git a/tbsetup/elabinelab.in b/tbsetup/elabinelab.in
index 969d78cd5a857609f4b3158ad4409eaba336b426..bac6f8723a48ae33f0aaa30ff41572a2bf23f6ce 100644
--- a/tbsetup/elabinelab.in
+++ b/tbsetup/elabinelab.in
@@ -413,8 +413,13 @@ if ($firewalled) {
     $UID = 0;
     system("$SSH -host $firewall ipfw delete 1");
     if ($?) {
-	print STDERR "*** $0:\n".
-	             "    Error turning back on firewall rules ($firewall)!\n";
+	print STDERR "*** Error turning back on firewall rules ($firewall)!\n".
+		     "    Will retry again.\n";
+	system("$SSH -host $firewall ipfw delete 1");
+	if ($?) {
+	    die("*** $0:\n".
+		"    Error turning back on firewall rules! Retry failed.\n");
+	}
     }
     $UID = $SAVEUID;
 }