--- /usr/lib/dracut/modules.d/99base/init.original	2012-01-23 03:49:19.000000000 -0500
+++ /usr/lib/dracut/modules.d/99base/init	2012-02-02 23:20:14.550818490 -0500
@@ -214,11 +214,11 @@
 export main_loop
 while :; do
 
-    check_finished && break
+    check_finished 
 
     udevsettle
 
-    check_finished && break
+    check_finished
 
     if [ -f $hookdir/initqueue/work ]; then
         rm $hookdir/initqueue/work
@@ -227,7 +227,7 @@
     for job in $hookdir/initqueue/*.sh; do
         [ -e "$job" ] || break
         job=$job . $job
-        check_finished && break 2
+        check_finished
     done
 
     $UDEV_QUEUE_EMPTY >/dev/null 2>&1 || continue
@@ -235,7 +235,7 @@
     for job in $hookdir/initqueue/settled/*.sh; do
         [ -e "$job" ] || break
         job=$job . $job
-        check_finished && break 2
+        check_finished
     done
 
     $UDEV_QUEUE_EMPTY >/dev/null 2>&1 || continue
@@ -265,7 +265,7 @@
             main_loop=0
         done
     fi
-
+    check_finished && break
     main_loop=$(($main_loop+1))
     [ $main_loop -gt $RDRETRY ] \
         && { flock -s 9 ; emergency_shell "Unable to process initqueue"; } 9>/.console_lock
