diff -urNp systemd-37.orig/src/unit.c systemd-37/src/unit.c
--- systemd-37.orig/src/unit.c 2011-09-23 16:28:27.000000000 +0200
+++ systemd-37/src/unit.c 2011-12-05 21:37:15.000000000 +0100
-@@ -2432,7 +2432,7 @@ void unit_status_printf(Unit *u, const c
+@@ -2432,7 +2432,12 @@ void unit_status_printf(Unit *u, const c
assert(u);
assert(format);
- if (!UNIT_VTABLE(u)->show_status)
-+ if (!UNIT_VTABLE(u)->show_status || (u->meta.manager->sysv_console && u->service.sysv_path))
++ if (!UNIT_VTABLE(u)->show_status
++ || (u->manager->sysv_console
++ && (startswith(u->description, "SYSV: ") || startswith(u->description, "LSB: "))
++ && (u->job == NULL || u->job->result == JOB_DONE)
++ && UNIT_VTABLE(u)->active_state(u) != UNIT_FAILED
++ && LOG_PRI(log_get_max_level()) <= LOG_INFO))
return;
- if (!manager_get_show_status(u->meta.manager))
+ if (!manager_get_show_status(u->manager))