diff -ruN tuxonice-userui/userui_core.c tuxonice-userui-updated/userui_core.c
--- tuxonice-userui/userui_core.c	2011-09-29 08:24:20.000000000 +1000
+++ tuxonice-userui-updated/userui_core.c	2011-12-18 09:39:39.237562469 +1100
@@ -1010,9 +1010,9 @@
 	int result = 0;
 	int i;
 
-	userui_ops[0] = USPLASH_OPS;
-	userui_ops[1] = FBSPLASH_OPS;
-	userui_ops[2] = &userui_text_ops;
+	userui_ops[0] = &userui_text_ops;
+	userui_ops[1] = USPLASH_OPS;
+	userui_ops[2] = FBSPLASH_OPS;
 	active_ops = &userui_text_ops;
 
 	handle_params(argc, argv);
@@ -1029,7 +1029,8 @@
 
 	prepare_console();
 
-	/* Initialise all that we can, use the last */
+	/* Initialise all that we can, use the first */
+  active_ops = NULL;
 	for (i = 0; i < NUM_UIS; i++) {
 		if (userui_ops[i] && userui_ops[i]->load)
 			result = userui_ops[i]->load();
@@ -1038,9 +1039,9 @@
 				fprintf(stderr, "Failed to initialise %s module.\n", userui_ops[i]->name);
 			else
 				printk("Failed to initialise %s module.\n", userui_ops[i]->name);
-			if (active_ops == userui_ops[i]);
-				active_ops = userui_ops[NUM_UIS - 1];
-		}
+		} else
+      if (!active_ops)
+        active_ops = userui_ops[i];
 	}
 
 	if (active_ops->prepare)
