diff --git a/perl-Bootloader-0.4.15.tar.bz2 b/perl-Bootloader-0.4.15.tar.bz2
deleted file mode 100644
index 1a6fdd6..0000000
--- a/perl-Bootloader-0.4.15.tar.bz2
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:532ae7ae9a584e39d8384e01a17a5d95d476943d8c7b359e25e036409ae62a37
-size 45380
diff --git a/perl-Bootloader-0.4.16.tar.bz2 b/perl-Bootloader-0.4.16.tar.bz2
new file mode 100644
index 0000000..9f0e253
--- /dev/null
+++ b/perl-Bootloader-0.4.16.tar.bz2
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c85381576be789e396026548c5b463d9bf62c4f73cea6abedf796aeb162cf5a5
+size 45403
diff --git a/perl-Bootloader.changes b/perl-Bootloader.changes
index 940aaee..3cf4da2 100644
--- a/perl-Bootloader.changes
+++ b/perl-Bootloader.changes
@@ -1,3 +1,26 @@
+-------------------------------------------------------------------
+Thu May 31 15:46:13 CEST 2007 - aosthof@suse.de
+
+- Fixed creation of failsafe sections in boot menu, this issue is
+  also related to bugs #272236, #272208 and #277405
+- Verion bump to 0.4.16
+
+-------------------------------------------------------------------
+Thu May 31 15:16:46 CEST 2007 - aosthof@suse.de
+
+- The last commit is also related to bugs #272236 and #272208
+
+-------------------------------------------------------------------
+Thu May 31 14:59:11 CEST 2007 - aosthof@suse.de
+
+- Fixed label naming scheme for boot entries so that debug or
+  vanilla kernel entries for instance get named correctly (#277405)
+
+-------------------------------------------------------------------
+Thu Apr 26 13:41:38 CEST 2007 - aosthof@suse.de
+
+- Fixed failsafe parameters to boot in runlevel 3 instead of 5
+
 -------------------------------------------------------------------
 Wed Apr 25 19:11:25 CEST 2007 - aosthof@suse.de
 
diff --git a/perl-Bootloader.spec b/perl-Bootloader.spec
index ea1233b..d18426d 100644
--- a/perl-Bootloader.spec
+++ b/perl-Bootloader.spec
@@ -1,5 +1,5 @@
 #
-# spec file for package perl-Bootloader (Version 0.4.15)
+# spec file for package perl-Bootloader (Version 0.4.16)
 #
 # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
 # This file and all modifications and additions to the pristine
@@ -11,7 +11,7 @@
 # norootforbuild
 
 Name:           perl-Bootloader
-Version:        0.4.15
+Version:        0.4.16
 Release:        1
 Requires:       perl >= %{perl_version}
 Requires:       perl-gettext
@@ -34,6 +34,10 @@ Perl modules for configuring various boot loaders.
 
 Authors:
 --------
+    Alexander Osthof <aosthof@novell.com>
+    Stefan Fent <sf@novell.com>
+    Joachim Plack <jplack@novell.com>
+    Olaf Dabrunz <od@novell.com>
     Jiri Srain <jsrain@suse.cz>
 
 %prep
@@ -63,6 +67,17 @@ install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/usr/lib/bootloader
 /usr/lib/bootloader
 
 %changelog
+* Thu May 31 2007 - aosthof@suse.de
+- Fixed creation of failsafe sections in boot menu, this issue is
+  also related to bugs #272236, #272208 and #277405
+- Verion bump to 0.4.16
+* Thu May 31 2007 - aosthof@suse.de
+- The last commit is also related to bugs #272236 and #272208
+* Thu May 31 2007 - aosthof@suse.de
+- Fixed label naming scheme for boot entries so that debug or
+  vanilla kernel entries for instance get named correctly (#277405)
+* Thu Apr 26 2007 - aosthof@suse.de
+- Fixed failsafe parameters to boot in runlevel 3 instead of 5
 * Wed Apr 25 2007 - aosthof@suse.de
 - Fixed usage of md raids for ia64 (#233255)
 - Reverted EFI Bootloader Label code in ELILO.pm to display gui
diff --git a/update-bootloader b/update-bootloader
index 9237c33..4ad32d5 100644
--- a/update-bootloader
+++ b/update-bootloader
@@ -289,12 +289,14 @@ if (defined $oper{add}) {
     }
     # Naming scheme for all other kernels
     else {
-	if ($loader eq "grub") {
-	    $opt_name = GetProduct() if $add_product;
-	}
-	else {
-	    $opt_name = GetProduct() . " -- " . $opt_name if $add_product;
-	}
+	my $flavor = $opt_name;
+	$flavor =~ s/.*-(\w+)/\1/;
+	$flavor = ucfirst ($flavor);
+
+	my $version = $opt_name;
+	$version =~ s/-[^-]*$//;
+
+	$opt_name = $flavor . " -- " . GetProduct() . " - " . $opt_name;
     }
 }
 
@@ -338,9 +340,16 @@ if (defined $oper{add}) {
  	my $arch = `uname --hardware-platform`;
 	chomp ($arch);
 
-	# Add a "Failsafe" section
-	if ((($arch eq "i386") || ($arch eq "x86_64") || ($arch eq "ia64")) 
-	&& $opt_xen != 1) {
+	# Add a "Failsafe" section, but only if the underlying architecture is
+	# one of i386, x86_84 or ia64 and the kernel flavor is either default,
+	# smp or bigsmp and not a xen kernel.
+	if ((($arch eq "i386") ||
+	    ($arch eq "x86_64") ||
+	    ($arch eq "ia64")) &&
+	    (($opt_image =~ /-default/) ||
+	    ($opt_image =~ /-smp/) ||
+	    ($opt_image =~ /-bigsmp/)) &&
+	    ($opt_xen != 1)) {
 	    AddSection($opt_failsafe, @params);
 	}
     }