  
  /**
   * plymouth_error:
-@@ -2203,12 +2211,14 @@
+@@ -1475,7 +1485,8 @@
+ 	/* Enforce local only after virtual filesystems triggered */
+ 	if ((! local_triggered)
+ 	    && virtual_triggered
+-	    && (num_local_mounted == num_local)) {
++	    && (num_local_mounted == num_local)
++	    && (num_local_failed == 0)) {
+ 		nih_info (_("%s finished"), "local");
+ 		emit_event ("local-filesystems", NULL);
+ 		local_triggered = TRUE;
+@@ -1484,7 +1495,8 @@
+ 	/* Enforce remote only after virtual filesystems triggrered */
+ 	if ((! remote_triggered)
+ 	    && virtual_triggered
+-	    && (num_remote_mounted == num_remote)) {
++	    && (num_remote_mounted == num_remote)
++	    && (num_remote_failed == 0)) {
+ 		nih_info (_("%s finished"), "remote");
+ 		emit_event ("remote-filesystems", NULL);
+ 		remote_triggered = TRUE;
+@@ -1494,7 +1506,9 @@
+ 	if ((! filesystem_triggered)
+ 	    && virtual_triggered
+ 	    && local_triggered
+-	    && remote_triggered) {
++	    && remote_triggered
++	    && (num_local_failed == 0)
++	    && (num_remote_failed == 0)) {
+ 		nih_info (_("All filesystems mounted"));
+ 		emit_event ("filesystem", NULL);
+ 		filesystem_triggered = TRUE;
+@@ -1508,9 +1522,9 @@
+ 		swap_triggered = TRUE;
+ 	}
+ 
+-	nih_info ("local %zi/%zi remote %zi/%zi virtual %zi/%zi swap %zi/%zi",
+-		   num_local_mounted, num_local,
+-		   num_remote_mounted, num_remote,
++	nih_info ("local %zi/%zi/%zi remote %zi/%zi/%zi virtual %zi/%zi swap %zi/%zi",
++		   num_local_mounted, num_local, num_local_failed,
++		   num_remote_mounted, num_remote, num_remote_failed,
+ 		   num_virtual_mounted, num_virtual,
+ 		   num_swap_mounted, num_swap);
+ }
+@@ -2203,12 +2217,14 @@
  	if (no_events)
  		return;
  

 
 void   usr1_handler          (void *data, NihSignal *signal);
 
@@ -310,6 +316,7 @@
  **/
 static struct udev *udev = NULL;
 

 }
 
 void
@@ -2881,20 +2906,31 @@
 		NIH_LIST_FOREACH (mounts, iter) {
 			Mount *mnt = (Mount *)iter;
 
-			if (mnt->error <= ERROR_BORED)
+			if (mnt->error == ERROR_NONE)
 				continue;
 
-			nih_error (_("Skipping mounting %s since Plymouth is not available"),
+			nih_error (_("Could not mount %s"),
 				   MOUNT_NAME (mnt));
 
 			mnt->error = ERROR_NONE;
 
+			if (mnt->tag == TAG_LOCAL) {
+			    num_local_failed++;
+			    emit_event ("mount-failed", mnt);
+			}
+			
+			if (mnt->tag == TAG_REMOTE) {
+			    num_remote_failed++;
+			    emit_event ("mount-failed", mnt);
+			}
+
 			skip_mount (mnt);
 		}
 
 		return;
 	}
 
