diff -ru sos-code-article7.5/sos/sched.c timesharing-sos-code-article7.5/sos/sched.c
--- sos-code-article7.5/sos/sched.c	2005-04-27 20:17:17.000000000 +0200
+++ timesharing-sos-code-article7.5/sos/sched.c	2005-06-05 22:40:58.000000000 +0200
@@ -131,7 +131,7 @@
     return SOS_OK;
 
   /* Reset the CPU time used in the quantuum */
-  memset(& thr->running.user_time_spent_in_slice, 0x0, sizeof(struct sos_time));
+  memset(& thr->user_time_spent_in_slice, 0x0, sizeof(struct sos_time));
 
   if (SOS_SCHED_PRIO_IS_RT(sos_thread_get_priority(thr)))
     {
@@ -185,7 +185,7 @@
   /* Current (user) thread expired its time quantuum ?  A kernel
      thread never expires because sos_sched_do_timer_tick() below
      won't update its user_time_spent_in_slice */
-  if (sos_time_cmp(& thr->running.user_time_spent_in_slice,
+  if (sos_time_cmp(& thr->user_time_spent_in_slice,
 		   & time_slice[prio]) >= 0)
       return TRUE;
 
@@ -203,7 +203,7 @@
   if (thread_expired_its_quantuum(current_thread))
     {
       /* Reset the CPU time used in the quantuum */
-      memset(& current_thread->running.user_time_spent_in_slice,
+      memset(& current_thread->user_time_spent_in_slice,
 	     0x0, sizeof(struct sos_time));
 
       do_yield = TRUE;
@@ -290,7 +290,7 @@
 		   & tick_duration);
 
       /* Update time spent is current timeslice ONLY for a user thread */
-      sos_time_inc(& interrupted_thread->running.user_time_spent_in_slice,
+      sos_time_inc(& interrupted_thread->user_time_spent_in_slice,
 		   & tick_duration);
     }
   else
diff -ru sos-code-article7.5/sos/thread.h timesharing-sos-code-article7.5/sos/thread.h
--- sos-code-article7.5/sos/thread.h	2005-04-27 20:17:17.000000000 +0200
+++ timesharing-sos-code-article7.5/sos/thread.h	2005-06-05 22:41:54.000000000 +0200
@@ -136,13 +136,11 @@
       struct sos_sched_queue *rdy_queue;
       struct sos_thread     *rdy_prev, *rdy_next;
     } ready;
-
-    struct
-    {
-      struct sos_time user_time_spent_in_slice;
-    } running;
   }; /* Anonymous union (gcc extenion) */
 
+  /** Time spent in current time-sharing slice */
+  struct sos_time user_time_spent_in_slice;
+
 
   /**
    * When a thread in kernel mode is accessing the user space, it may
