diff -urN oldtree/kernel/sched_ingosched.c newtree/kernel/sched_ingosched.c
--- oldtree/kernel/sched_ingosched.c	2006-08-19 16:57:07.269775250 -0400
+++ newtree/kernel/sched_ingosched.c	2006-08-19 16:59:58.240460250 -0400
@@ -500,7 +500,7 @@
 rq_sched_info_arrive(struct rq *rq, unsigned long delta_jiffies)
 {
 	if (rq) {
-                rq->rq_sched_info.max_delay = max(t->sched_info.max_delay, delta_jiffies);
+                rq->rq_sched_info.max_delay = max(rq->rq_sched_info.max_delay, delta_jiffies);
 		rq->rq_sched_info.run_delay += delta_jiffies;
 		rq->rq_sched_info.pcnt++;
 	}
diff -urN oldtree/kernel/sched_staircase.c newtree/kernel/sched_staircase.c
--- oldtree/kernel/sched_staircase.c	2006-08-19 07:06:18.000000000 -0400
+++ newtree/kernel/sched_staircase.c	2006-08-19 16:59:37.247148250 -0400
@@ -352,6 +352,7 @@
 		    rq->sched_switch, rq->sched_cnt, rq->sched_goidle,
 		    rq->ttwu_cnt, rq->ttwu_local,
 		    rq->rq_sched_info.cpu_time,
+                    rq->rq_sched_info.max_delay,
 		    rq->rq_sched_info.run_delay, rq->rq_sched_info.pcnt);
 
 		seq_printf(seq, "\n");
@@ -422,6 +423,7 @@
 rq_sched_info_arrive(struct rq *rq, unsigned long delta_jiffies)
 {
 	if (rq) {
+                rq->rq_sched_info.max_delay = max(rq->rq_sched_info.max_delay, delta_jiffies);
 		rq->rq_sched_info.run_delay += delta_jiffies;
 		rq->rq_sched_info.pcnt++;
 	}
@@ -491,6 +493,7 @@
 	if (t->sched_info.last_queued)
 		delta_jiffies = now - t->sched_info.last_queued;
 	sched_info_dequeued(t);
+        t->sched_info.max_delay = max(t->sched_info.max_delay, diff);
 	t->sched_info.run_delay += delta_jiffies;
 	t->sched_info.last_arrival = now;
 	t->sched_info.pcnt++;
