diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 9ce9ca355c..330d0c6402 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -1679,16 +1679,18 @@ ARDOUR_UI::update_cpu_load ()
const unsigned int x = _session ? _session->get_xrun_count () : 0;
double const c = AudioEngine::instance()->get_dsp_load ();
+ const char* const bg = c > 90 ? " background=\"red\"" : "";
+
char buf[64];
if (x > 9999) {
- snprintf (buf, sizeof (buf), "DSP: %.0f%% (>10k)", c);
+ snprintf (buf, sizeof (buf), "DSP: %.0f%% (>10k)", bg, c);
} else if (x > 0) {
- snprintf (buf, sizeof (buf), "DSP: %.0f%% (%d)", c, x);
+ snprintf (buf, sizeof (buf), "DSP: %.0f%% (%d)", bg, c, x);
} else {
- snprintf (buf, sizeof (buf), "DSP: %.0f%%", c);
+ snprintf (buf, sizeof (buf), "DSP: %.0f%%", bg, c);
}
- dsp_load_label.set_text (buf);
+ dsp_load_label.set_markup (buf);
if (x > 9999) {
snprintf (buf, sizeof (buf), _("DSP: %.1f%% X: >10k\n%s"), c, _("Shift+Click to clear xruns."));