diff --git a/runtime/src/katracereader.cpp b/runtime/src/katracereader.cpp
index efca83117404fae66b071c8173e4a960f53cc6d5..eb91fc6816579853d132af424a45743e142f5974 100644
--- a/runtime/src/katracereader.cpp
+++ b/runtime/src/katracereader.cpp
@@ -1234,6 +1234,7 @@ struct task_info {
   uint64_t               addr;
   uint64_t               id;
   uint64_t               date;
+  uint64_t               duration;
   uint64_t               delay;
   int                    kid;
   unsigned int           fmtid;
@@ -1310,6 +1311,7 @@ void rastello_parallel_region_t::dump_task_info( task_info* ti )
   fprintf(fout, "\tT=task_add(id(\"T\",{%" PRIu64 "}));\n", ti->id);
   fprintf(fout, "\tT->priority=%" PRIu64 ";\n", ti->date );
   fprintf(fout, "\tT->p=%i;\n", ti->kid );
+  fprintf(fout, "\tT->duration=%i;\n", ti->duration );
   /* perf counter & other */
   fprintf(fout, "\tT->cost=%" PRIu64 ";\n", ti->delay );
   for (size_t i=0; i< ti->perfctr.size(); ++i)
@@ -1536,6 +1538,8 @@ printf("pred[id:%i/%p] = {id:%i}/%p\n", succ->id, (void*)succ->addr, task->id, (
       if (KAAPI_EVENT_DATA(event,2,i) == 0) /* no explicit == forget them */
         break;
       std::map<uint64_t,kproc_t>::iterator kp = parallel_region_t::container_kproc.find( event->kid );
+      task_info* task = rpr->get_taskinfo( KAAPI_EVENT_DATA(event,0,u), false );
+      task->duration = event->date - task->date;
       if (kp == parallel_region_t::container_kproc.end())
         printf("***Unkown thread kid: %i\n", event->kid);
 /*