diff --git a/bootloader_entry b/bootloader_entry
index 54f0251..162572a 100644
--- a/bootloader_entry
+++ b/bootloader_entry
@@ -194,6 +194,10 @@ function add_entry()
 					update_bootloader --refresh || exit 1
 				;;
 			esac
+		elif [ -f $PERL_BOOTLOADER_TESTSUITE_PATH/etc/sysconfig/bootloader ] &&
+		     [ -f $PERL_BOOTLOADER_TESTSUITE_PATH/boot/grub2/grub.cfg -o \
+		       -f $PERL_BOOTLOADER_TESTSUITE_PATH/boot/grub2-efi/grub.cfg ]; then
+			update_bootloader --refresh || exit 1
 		fi
 	fi
 }
@@ -266,6 +270,10 @@ function remove_entry()
 
 		# Run the bootloader (e.g., lilo).
 		update_bootloader --refresh || exit 1
+		elif [ -f $PERL_BOOTLOADER_TESTSUITE_PATH/etc/sysconfig/bootloader ] &&
+		     [ -f $PERL_BOOTLOADER_TESTSUITE_PATH/boot/grub2/grub.cfg -o \
+		       -f $PERL_BOOTLOADER_TESTSUITE_PATH/boot/grub2-efi/grub.cfg ]; then
+		update_bootloader --refresh || exit 1
                 fi
 	fi
 }
diff --git a/perl-Bootloader-0.6.1.tar.bz2 b/perl-Bootloader-0.6.1.tar.bz2
deleted file mode 100644
index a167497..0000000
--- a/perl-Bootloader-0.6.1.tar.bz2
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c9aa2bf41ca0b6d18589fc632e91e52a329cb058966d86645b750ea99ad9a868
-size 151853
diff --git a/perl-Bootloader-0.6.3.tar.bz2 b/perl-Bootloader-0.6.3.tar.bz2
new file mode 100644
index 0000000..c7eb403
--- /dev/null
+++ b/perl-Bootloader-0.6.3.tar.bz2
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4627fdadcb7c0bd29c603f92e8b26e09ee74ff1da7e920814c23f9cdb9a08f2b
+size 152955
diff --git a/perl-Bootloader.changes b/perl-Bootloader.changes
index 2bd2fc5..8736392 100644
--- a/perl-Bootloader.changes
+++ b/perl-Bootloader.changes
@@ -1,3 +1,23 @@
+-------------------------------------------------------------------
+Fri Apr 27 12:06:09 CEST 2012 - mchang@suse.de
+
+- fix after grub2 package update, the system become unbootable. (bnc#758570)
+  also fix running update-bootloader --refresh returns error when extended
+  partition is to be installed.
+- 0.6.3
+
+-------------------------------------------------------------------
+Mon Apr 23 11:26:15 CEST 2012 - mchang@suse.de
+
+- add read/write grub2-efi's settings for global options from yast2's
+  bootloader option widgets, including timeout, hiddenmenu, vgamode, append
+  and default
+- add read/write grub2's settings for serial console from yast2's bootloader
+  option widgets
+- add read/write grub2's settings for global options from yast2's bootloader
+  option widgets, including timeout, hiddenmenu, vgamode, append and default
+- fix bootloader_entry util to correctly handle grub2's case (bnc#755183)
+
 -------------------------------------------------------------------
 Thu Mar 22 10:30:34 UTC 2012 - mchang@suse.com
 
diff --git a/perl-Bootloader.spec b/perl-Bootloader.spec
index b67edf1..d9c4938 100644
--- a/perl-Bootloader.spec
+++ b/perl-Bootloader.spec
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Bootloader
-Version:        0.6.1
+Version:        0.6.3
 Release:        0
 Requires:       perl-base = %{perl_version}
 Requires:       e2fsprogs
diff --git a/update-bootloader b/update-bootloader
index a2ba221..93e64aa 100644
--- a/update-bootloader
+++ b/update-bootloader
@@ -212,6 +212,16 @@ if (Bootloader::Tools::GetBootloader() eq "none")
   exit 0;
 }
 
+if (Bootloader::Tools::GetBootloader() =~ /^(grub2|grub2-efi)$/)
+{
+  open (LOG, ">>$logname");
+  print LOG ("grub2 bootloader, no add/remove section support\n");
+  close LOG;
+
+  delete $oper{add};
+  delete $oper{remove};
+}
+
 if ($opt_image and $opt_image !~ m;^/;) {
     $opt_image = getcwd . '/' . $opt_image
 }
@@ -506,10 +516,8 @@ if (defined $oper{remove}) {
 }
 
 if (defined $oper{refresh}) {
-    my $loader = Bootloader::Tools::GetBootloader();
-    my $avoid_init = ($loader eq "grub2" || $loader eq "grub2-efi") ? 1 : 0;
-
-    my $ret = UpdateBootloader($avoid_init);
+    # Always set $avoid_init=0 to guarentee bootloader installed (bnc#759224)
+    my $ret = UpdateBootloader(0);
     exit 1 if ( !$ret );
 }