Index: cpukit/posix/src/condwaitsupp.c
===================================================================
--- cpukit/posix/src/condwaitsupp.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/posix/src/condwaitsupp.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -76,5 +76,5 @@
         executing->Wait.id          = *cond;
 
-        _Thread_queue_Enqueue( &the_cond->Wait_queue, timeout );
+        _Thread_queue_Enqueue( &the_cond->Wait_queue, executing, timeout );
 
         _Objects_Put( &the_cond->Object );
Index: cpukit/posix/src/pthreadjoin.c
===================================================================
--- cpukit/posix/src/pthreadjoin.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/posix/src/pthreadjoin.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -72,5 +72,9 @@
         executing->Wait.return_argument = &return_pointer;
         _Thread_queue_Enter_critical_section( &api->Join_List );
-        _Thread_queue_Enqueue( &api->Join_List, WATCHDOG_NO_TIMEOUT );
+        _Thread_queue_Enqueue(
+          &api->Join_List,
+          executing,
+          WATCHDOG_NO_TIMEOUT
+        );
       }
       _Objects_Put( &the_thread->Object );
Index: cpukit/posix/src/sigtimedwait.c
===================================================================
--- cpukit/posix/src/sigtimedwait.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/posix/src/sigtimedwait.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -158,5 +158,5 @@
     _Thread_queue_Enter_critical_section( &_POSIX_signals_Wait_queue );
     _ISR_Enable( level );
-    _Thread_queue_Enqueue( &_POSIX_signals_Wait_queue, interval );
+    _Thread_queue_Enqueue( &_POSIX_signals_Wait_queue, executing, interval );
   _Thread_Enable_dispatch();
 
Index: cpukit/rtems/src/regiongetsegment.c
===================================================================
--- cpukit/rtems/src/regiongetsegment.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/rtems/src/regiongetsegment.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -86,5 +86,9 @@
             _Thread_queue_Enter_critical_section( &the_region->Wait_queue );
 
-            _Thread_queue_Enqueue( &the_region->Wait_queue, timeout );
+            _Thread_queue_Enqueue(
+              &the_region->Wait_queue,
+              executing,
+              timeout
+            );
 
             _Objects_Put( &the_region->Object );
Index: cpukit/score/include/rtems/score/coresemimpl.h
===================================================================
--- cpukit/score/include/rtems/score/coresemimpl.h	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/score/include/rtems/score/coresemimpl.h	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -242,5 +242,5 @@
   _ISR_Enable( level );
 
-  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout );
+  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, executing, timeout );
   _Thread_Enable_dispatch();
 }
Index: cpukit/score/include/rtems/score/threadqimpl.h
===================================================================
--- cpukit/score/include/rtems/score/threadqimpl.h	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/score/include/rtems/score/threadqimpl.h	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -84,7 +84,8 @@
  *  the_thread_queue with an optional timeout.
  */
-#define _Thread_queue_Enqueue( _the_thread_queue, _timeout ) \
+#define _Thread_queue_Enqueue( _the_thread_queue, _the_thread, _timeout ) \
   _Thread_queue_Enqueue_with_handler( \
     _the_thread_queue, \
+    _the_thread, \
     _timeout, \
     _Thread_queue_Timeout )
@@ -97,4 +98,5 @@
  *
  *  @param[in] the_thread_queue pointer to threadq
+ *  @param[in] the_thread the thread to enqueue
  *  @param[in] timeout interval to wait
  *
@@ -103,7 +105,8 @@
  */
 void _Thread_queue_Enqueue_with_handler(
-  Thread_queue_Control*        the_thread_queue,
-  Watchdog_Interval            timeout,
-  Thread_queue_Timeout_callout handler
+  Thread_queue_Control         *the_thread_queue,
+  Thread_Control               *the_thread,
+  Watchdog_Interval             timeout,
+  Thread_queue_Timeout_callout  handler
 );
 
Index: cpukit/score/src/corebarrierwait.c
===================================================================
--- cpukit/score/src/corebarrierwait.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/score/src/corebarrierwait.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -52,4 +52,4 @@
   _ISR_Enable( level );
 
-  _Thread_queue_Enqueue( &the_barrier->Wait_queue, timeout );
+  _Thread_queue_Enqueue( &the_barrier->Wait_queue, executing, timeout );
 }
Index: cpukit/score/src/coremsgseize.c
===================================================================
--- cpukit/score/src/coremsgseize.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/score/src/coremsgseize.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -122,4 +122,4 @@
   _ISR_Enable( level );
 
-  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
+  _Thread_queue_Enqueue( &the_message_queue->Wait_queue, executing, timeout );
 }
Index: cpukit/score/src/coremsgsubmit.c
===================================================================
--- cpukit/score/src/coremsgsubmit.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/score/src/coremsgsubmit.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -131,5 +131,9 @@
       _ISR_Enable( level );
 
-      _Thread_queue_Enqueue( &the_message_queue->Wait_queue, timeout );
+      _Thread_queue_Enqueue(
+        &the_message_queue->Wait_queue,
+        executing,
+        timeout
+      );
     }
 
Index: cpukit/score/src/coremutexseize.c
===================================================================
--- cpukit/score/src/coremutexseize.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/score/src/coremutexseize.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -66,5 +66,5 @@
 
   the_mutex->blocked_count++;
-  _Thread_queue_Enqueue( &the_mutex->Wait_queue, timeout );
+  _Thread_queue_Enqueue( &the_mutex->Wait_queue, executing, timeout );
 
   _Thread_Enable_dispatch();
Index: cpukit/score/src/corerwlockobtainread.c
===================================================================
--- cpukit/score/src/corerwlockobtainread.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/score/src/corerwlockobtainread.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -87,4 +87,5 @@
     _Thread_queue_Enqueue_with_handler(
        &the_rwlock->Wait_queue,
+       executing,
        timeout,
        _CORE_RWLock_Timeout
Index: cpukit/score/src/corerwlockobtainwrite.c
===================================================================
--- cpukit/score/src/corerwlockobtainwrite.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/score/src/corerwlockobtainwrite.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -77,4 +77,5 @@
     _Thread_queue_Enqueue_with_handler(
        &the_rwlock->Wait_queue,
+       executing,
        timeout,
        _CORE_RWLock_Timeout
Index: cpukit/score/src/coresemseize.c
===================================================================
--- cpukit/score/src/coresemseize.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/score/src/coresemseize.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -64,5 +64,5 @@
   executing->Wait.id    = id;
   _ISR_Enable( level );
-  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, timeout );
+  _Thread_queue_Enqueue( &the_semaphore->Wait_queue, executing, timeout );
 }
 #endif
Index: cpukit/score/src/mpci.c
===================================================================
--- cpukit/score/src/mpci.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/score/src/mpci.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -191,12 +191,14 @@
 )
 {
-  the_packet->source_tid      = _Thread_Executing->Object.id;
-  the_packet->source_priority = _Thread_Executing->current_priority;
+  Thread_Control *executing = _Thread_Executing;
+
+  the_packet->source_tid      = executing->Object.id;
+  the_packet->source_priority = executing->current_priority;
   the_packet->to_convert =
      ( the_packet->to_convert - sizeof(MP_packet_Prefix) ) / sizeof(uint32_t);
 
-  _Thread_Executing->Wait.id = the_packet->id;
-
-  _Thread_Executing->Wait.queue = &_MPCI_Remote_blocked_threads;
+  executing->Wait.id = the_packet->id;
+
+  executing->Wait.queue = &_MPCI_Remote_blocked_threads;
 
   _Thread_Disable_dispatch();
@@ -213,12 +215,16 @@
         the_packet->timeout = _MPCI_table->default_timeout;
 
-    _Thread_queue_Enqueue( &_MPCI_Remote_blocked_threads, the_packet->timeout );
-
-    _Thread_Executing->current_state =
-      _States_Set( extra_state, _Thread_Executing->current_state );
+    _Thread_queue_Enqueue(
+      &_MPCI_Remote_blocked_threads,
+      executing,
+      the_packet->timeout
+    );
+
+    executing->current_state =
+      _States_Set( extra_state, executing->current_state );
 
   _Thread_Enable_dispatch();
 
-  return _Thread_Executing->Wait.return_code;
+  return executing->Wait.return_code;
 }
 
Index: cpukit/score/src/threadqenqueue.c
===================================================================
--- cpukit/score/src/threadqenqueue.c	(revision f4804efa50671ca5d9f141f99ca724ae04681269)
+++ cpukit/score/src/threadqenqueue.c	(revision 07332ae4db821ad8a11b1eda6fbb5b453ef069ef)
@@ -29,9 +29,9 @@
 void _Thread_queue_Enqueue_with_handler(
   Thread_queue_Control         *the_thread_queue,
+  Thread_Control               *the_thread,
   Watchdog_Interval             timeout,
   Thread_queue_Timeout_callout  handler
 )
 {
-  Thread_Control                   *the_thread;
   ISR_Level                         level;
   Thread_blocking_operation_States  sync_state;
@@ -41,6 +41,4 @@
     ISR_Level *
   );
-
-  the_thread = _Thread_Executing;
 
 #if defined(RTEMS_MULTIPROCESSING)
