diff --git a/recipes-core/fastinit/files/fastinit.sh b/recipes-core/fastinit/files/fastinit.sh
index c05cafa089ec19f4e73c4825765d552a0f6866b6..abda454b0daedbe7ac9dc3a6e1a89f64152d8ade 100755
--- a/recipes-core/fastinit/files/fastinit.sh
+++ b/recipes-core/fastinit/files/fastinit.sh
@@ -28,6 +28,8 @@ level_one() {
 	log_to_kernel "setting gpio 23 to high"
 	/usr/bin/gpioset -c 0 23=1 &
 
+	crit_to_kernel "host is up and ready"
+	
 	log_to_kernel "getting teletypes on ttyS0"
 	/sbin/getty -L 115200 ttyS0 vt100
 }
@@ -71,6 +73,5 @@ else
 	esac
 fi
 
-crit_to_kernel "host is up and ready"
-
-exit 0
+# fastinit has nothing to do when exiting a runlevel, halt
+exec /sbin/poweroff -f