restart after more failure cases
diff --git a/debian/changelog b/debian/changelog
index 165ddba..fd0afcc 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -4,7 +4,8 @@
   * Heisenbug (overwriting a buffer) found
   * Added an 'l' command for list kernel directory (jejb)
   * Accept both \b and \0177 as the interactive erase character (jejb)
-  * Be sure to restart interactively after more failures (Joel)
+  * Be sure to restart interactively after more failures (Joel and
+    Bjoern A. Zeeb)
 
  -- Paul Bame <bame@ldl.fc.hp.com>  Wed, 14 May 2004 09:00:29 -0600
 
diff --git a/ipl/ipl.c b/ipl/ipl.c
index 865a3a4..71975c5 100644
--- a/ipl/ipl.c
+++ b/ipl/ipl.c
@@ -257,7 +257,6 @@
     char  *p, kern_dir[256];
     const char *dir;
     int fd, part, part_fd;
-    int ok = 1;
 
     parse_pfname(path, &part, kern_dir);
     if ((p = strrchr(kern_dir, '/')) != NULL)
@@ -661,7 +660,7 @@
 	     partition[kern_part - 1].id != PALO_PARTITION) )
 	{
 	    printf("ERROR: Partition %d must be ext2\n", kern_part);
-	    while(1);
+	    goto restart;
 	}
 
 	pp = &partition[kern_part - 1];
@@ -678,7 +677,7 @@
 	{
 	    printf("ERROR: open %s from partition %d failed\n",
 		kern_name, kern_part);
-	    while(1);
+	    goto restart;
 	}
 
 	bkern_fd = byteio_open(kern_fd);