diff --git a/recipes-core/fastinit/files/fastinit.sh b/recipes-core/fastinit/files/fastinit.sh
index d0562e2957cee7dff1f44d234346e86fc7233ad3..803926cc3e70c1a1c8f273dea00377b25511fa0b 100755
--- a/recipes-core/fastinit/files/fastinit.sh
+++ b/recipes-core/fastinit/files/fastinit.sh
@@ -62,9 +62,7 @@ level_two() {
 	gp23hi
 	/sbin/level3d.sh &
 	/usr/bin/marvision 1>/dev/null 2>/dev/null
-	# To avoid undefined behaviours when marvision exited abnormally,
-	# reboot the system. 
-	reboot -f
+	wait $!
 }
 
 level_three() {
diff --git a/recipes-core/fastinit/files/level3d.sh b/recipes-core/fastinit/files/level3d.sh
index 393f6e7b953b5a8bfcb2e40cf006dabdd34ae813..0d144c7c6550eca4f9fa4d698acb83703e69ba59 100755
--- a/recipes-core/fastinit/files/level3d.sh
+++ b/recipes-core/fastinit/files/level3d.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-/usr/local/gpiomon -c 0 -n 1 -q 24
+/usr/bin/gpiomon -c 0 -n 1 -q 24
 # blocked until
 /sbin/chlevel.sh 3