diff --git a/build/lustre-kernel-2.4.spec.in b/build/lustre-kernel-2.4.spec.in
index 2ea23069e2c011ca7823f2d311398d658f0e8d62..b296702715ec2b22e77f7f23a145d96183e20564 100644
--- a/build/lustre-kernel-2.4.spec.in
+++ b/build/lustre-kernel-2.4.spec.in
@@ -406,7 +406,7 @@ for flavor in "" smp bigmem bigsmp pseries64 BOOT jensen ; do
 				# than installed, so force modules.dep to be recreated
 				echo "rm -f /lib/modules/%{KVERREL}${delim_flavor}/modules.dep" >> ${script}
 				echo "if [ -f /etc/modprobe.conf ] ; then" >> ${script}			
-				sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" %{SOURCE26} >> ${script}
+				sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" -e "s^%flavor^${flavor}^" %{SOURCE26} >> ${script}
 
 				echo "else" >> ${script}
 				sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" -e "s^%%{cfg_name}^${delim_flavor}^g" %{SOURCE29} >> ${script}
diff --git a/build/suse-post.sh b/build/suse-post.sh
index d60d63f5d4e8827076310a8cf73c9d26fc323d43..7efe83df630f8d4b8781872c73e5a7788bf914a2 100644
--- a/build/suse-post.sh
+++ b/build/suse-post.sh
@@ -53,10 +53,30 @@ if test "$YAST_IS_RUNNING" != instsys ; then
     fi
 fi
 
-if [ "$YAST_IS_RUNNING" != instsys -a -x /sbin/new-kernel-pkg ]; then
+if [ "$YAST_IS_RUNNING" != instsys ]; then
     # Notify boot loader that a new kernel image has been installed.
     # (during initial installation the boot loader configuration does not
     #  yet exist when the kernel is installed, but yast kicks the boot
     #  loader itself later.)
-    /sbin/new-kernel-pkg %ver_str
+    if [ -x /sbin/new-kernel-pkg ]; then
+        /sbin/new-kernel-pkg %ver_str
+    elif [ -x /usr/lib/bootloader/bootloader_entry ]; then
+        # handle 10.2 and SLES10 SP1
+	/usr/lib/bootloader/bootloader_entry \
+	    add \
+	    %flavor \
+	    %ver_str \
+	    vmlinuz-%ver_str \
+	    initrd-%ver_str
+    elif [ -x /sbin/update-bootloader ]; then
+	# handle 10.1 and SLES10 GA
+	/sbin/update-bootloader \
+	    --add \
+	    --image /boot/vmlinuz-%ver_str \
+	    --initrd /boot/initrd-%ver_str
+	/sbin/update-bootloader --refresh
+    else
+	echo "You may need to setup and install the boot loader using the"
+	echo "available bootloader for your platform (e.g. grub, lilo, zipl, ...)."
+    fi
 fi
diff --git a/build/suse-postun.sh b/build/suse-postun.sh
index 44c87986513fac3dc59d6a367d89f883a8458fec..ac9f30c1eb836b38f2deee9eab3b428b0c8a2a4f 100644
--- a/build/suse-postun.sh
+++ b/build/suse-postun.sh
@@ -45,6 +45,23 @@ if [ "$(readlink /boot/$image$SHORTNM)" = $image-%ver_str ]; then
     shopt -u nullglob
 fi
 
+# remove the bootloader entry for the kernel being removed
+if [ -x /usr/lib/bootloader/bootloader_entry ]; then
+    # handle 10.2 and SLES10 SP1
+    /usr/lib/bootloader/bootloader_entry \
+        remove \
+        smp \
+        %ver_str \
+        vmlinuz-%ver_str \
+        initrd-%ver_str
+elif [ -x /sbin/update-bootloader ]; then
+    # handle 10.1 and SLES10 GA
+    /sbin/update-bootloader --image /boot/vmlinuz-%ver_str \
+    			--initrd /boot/initrd-%ver_str \
+                            --remove --force
+    /sbin/update-bootloader --refresh
+fi
+
 # Check whether there is a .previous link to the image we're about
 # to remove or to the image we point the new symlink to (so .previous
 # would be identical to the current symlink)