diff --git a/src/all/basic/basic.c b/src/all/basic/basic.c
index ab86fbd9e6001211d4f9cb73a0bbb2a1ffcce33b..1df6c49320801df8c2187497052f0ec368e114aa 100644
--- a/src/all/basic/basic.c
+++ b/src/all/basic/basic.c
@@ -402,7 +402,10 @@ void StarPart_DIAG_call(StarPart_Context * ctx, char * method)
   Graph * g = StarPart_getGraph(data, "graph");  
   // printf("StarPart diagnostic for data \"%s\"\n", StarPart_getCurrentDataID(ctx));
   printGraphDiagnostic(g, nparts, part);
-  // printf("  - execution time = %lf (in ms)\n", data->exectime);
+  if(StarPart_isItem(data, "exectime")) {
+    double exectime = StarPart_getDouble(data, "exectime");
+    printf("  - execution time = %lf (in ms)\n", exectime);
+  }  
 }
 
 /* *********************************************************** */
@@ -867,11 +870,11 @@ void StarPart_STORE_post(StarPart_Context * ctx, char* method, char* key, char*
 void StarPart_TIME_pre(StarPart_Context * ctx, char* method, char* key, char* value)
 {  
   /* start timer */
-  // StarPart_Data * data = StarPart_getCurrentMethodArgument(ctx, "data");  
-  // struct timeval start; gettimeofday(&start, NULL);
-  // double exectime = (start.tv_sec*1000.0*1000.0 + start.tv_usec) / 1000.0; // in ms
-  // if(!StarPart_isItem(data, "exectime"))
-  // StarPart_addNewItem(data, "exectime", STARPART_GLOBAL, STARPART_DOUBLE, NEW_DOUBLE(exectime), true); 
+  StarPart_Data * data = StarPart_getCurrentMethodArgument(ctx, "data");  
+  struct timeval start; gettimeofday(&start, NULL);
+  double exectime = (start.tv_sec*1000.0*1000.0 + start.tv_usec) / 1000.0; // in ms
+  if(!StarPart_isItem(data, "exectime"))
+    StarPart_addNewItem(data, "exectime", STARPART_INOUT, STARPART_DOUBLE, NEW_DOUBLE(exectime), STARPART_GLOBAL, true); 
 }
 
 /* *********************************************************** */
@@ -879,10 +882,11 @@ void StarPart_TIME_pre(StarPart_Context * ctx, char* method, char* key, char* va
 void StarPart_TIME_post(StarPart_Context * ctx, char* method, char* key, char* value)
 {
   /* stop timer */
-  // struct timeval stop; gettimeofday(&stop, NULL);
-  // double exectime = (stop.tv_sec*1000.0*1000.0 + stop.tv_usec) / 1000.0; // in ms
-  // double _exectime = StarPart_getItemDouble(data, "exectime");
-  // StarPart_setItemDouble(data, "exectime", exectime - _exectime);
+  struct timeval stop; gettimeofday(&stop, NULL);
+  double exectime = (stop.tv_sec*1000.0*1000.0 + stop.tv_usec) / 1000.0; // in ms
+  StarPart_Data * data = StarPart_getCurrentMethodArgument(ctx, "data");  
+  double _exectime = StarPart_getDouble(data, "exectime");
+  StarPart_setDouble(data, "exectime", exectime - _exectime);
 }
 
 /* *********************************************************** */