Index: c/src/exec/sapi/headers/sptables.h
===================================================================
--- c/src/exec/sapi/headers/sptables.h	(revision 7c22114bf5044e03b01fa7b63de13639fc3589b8)
+++ c/src/exec/sapi/headers/sptables.h	(revision 7979e35617b49433694cf0a636d6ef2b58811ed4)
@@ -43,5 +43,5 @@
 
 const char _RTEMS_version[] =
-  "RTEMS RELEASE V3.1.16 (" CPU_NAME "/" RTEMS_MODEL_NAME ")";
+  "RTEMS RELEASE V3.2.0 (" CPU_NAME "/" RTEMS_MODEL_NAME ")";
 
 
Index: c/src/exec/sapi/include/rtems/sptables.h
===================================================================
--- c/src/exec/sapi/include/rtems/sptables.h	(revision 7c22114bf5044e03b01fa7b63de13639fc3589b8)
+++ c/src/exec/sapi/include/rtems/sptables.h	(revision 7979e35617b49433694cf0a636d6ef2b58811ed4)
@@ -43,5 +43,5 @@
 
 const char _RTEMS_version[] =
-  "RTEMS RELEASE V3.1.16 (" CPU_NAME "/" RTEMS_MODEL_NAME ")";
+  "RTEMS RELEASE V3.2.0 (" CPU_NAME "/" RTEMS_MODEL_NAME ")";
 
 
Index: c/src/exec/score/headers/watchdog.h
===================================================================
--- c/src/exec/score/headers/watchdog.h	(revision 7c22114bf5044e03b01fa7b63de13639fc3589b8)
+++ c/src/exec/score/headers/watchdog.h	(revision 7979e35617b49433694cf0a636d6ef2b58811ed4)
@@ -105,6 +105,6 @@
  */
 
-volatile unsigned32  _Watchdog_Sync_level;
-volatile unsigned32  _Watchdog_Sync_count;
+EXTERN volatile unsigned32  _Watchdog_Sync_level;
+EXTERN volatile unsigned32  _Watchdog_Sync_count;
 
 /*
Index: c/src/exec/score/include/rtems/score/watchdog.h
===================================================================
--- c/src/exec/score/include/rtems/score/watchdog.h	(revision 7c22114bf5044e03b01fa7b63de13639fc3589b8)
+++ c/src/exec/score/include/rtems/score/watchdog.h	(revision 7979e35617b49433694cf0a636d6ef2b58811ed4)
@@ -105,6 +105,6 @@
  */
 
-volatile unsigned32  _Watchdog_Sync_level;
-volatile unsigned32  _Watchdog_Sync_count;
+EXTERN volatile unsigned32  _Watchdog_Sync_level;
+EXTERN volatile unsigned32  _Watchdog_Sync_count;
 
 /*
Index: c/src/exec/score/src/thread.c
===================================================================
--- c/src/exec/score/src/thread.c	(revision 7c22114bf5044e03b01fa7b63de13639fc3589b8)
+++ c/src/exec/score/src/thread.c	(revision 7979e35617b49433694cf0a636d6ef2b58811ed4)
@@ -589,17 +589,18 @@
   executing = _Thread_Executing;
 
-  _Thread_Dispatch_disable_level = 0;
-
   /*
-   * Do the 'begin' here instead of after the context switch.
-   * This ensures 'switch' extensions can not be called before
-   * 'begin' extensions.
+   * Take care that 'begin' extensions get to complete before
+   * 'switch' extensions can run.  This means must keep dispatch
+   * disabled until all 'begin' extensions complete.
    */
-
+ 
   _User_extensions_Task_begin( executing );
-
-  if ( _Thread_Is_context_switch_necessary() )
-    _Thread_Dispatch();
-
+ 
+  /*
+   *  At this point, the dispatch disable level BETTER be 1.
+   */
+
+  _Thread_Enable_dispatch();
+ 
   (*executing->Start.entry_point)( executing->Start.initial_argument );
 
Index: c/src/lib/libbsp/i960/cvme961/clock/ckinit.c
===================================================================
--- c/src/lib/libbsp/i960/cvme961/clock/ckinit.c	(revision 7c22114bf5044e03b01fa7b63de13639fc3589b8)
+++ c/src/lib/libbsp/i960/cvme961/clock/ckinit.c	(revision 7979e35617b49433694cf0a636d6ef2b58811ed4)
@@ -26,5 +26,5 @@
 
 rtems_unsigned32 Clock_isrs;              /* ISRs until next tick */
-i960_isr         Old_ticker;
+i960_isr_entry   Old_ticker;
 volatile rtems_unsigned32 Clock_driver_ticks;
                                           /* ticks since initialization */
Index: c/src/lib/libbsp/i960/cvme961/include/bsp.h
===================================================================
--- c/src/lib/libbsp/i960/cvme961/include/bsp.h	(revision 7c22114bf5044e03b01fa7b63de13639fc3589b8)
+++ c/src/lib/libbsp/i960/cvme961/include/bsp.h	(revision 7979e35617b49433694cf0a636d6ef2b58811ed4)
@@ -120,5 +120,5 @@
 void bsp_cleanup( void );
 
-i960_isr set_vector( rtems_isr_entry, unsigned int, unsigned int );
+i960_isr_entry set_vector( rtems_isr_entry, unsigned int, unsigned int );
 
 #ifdef __cplusplus
Index: cpukit/score/include/rtems/score/watchdog.h
===================================================================
--- cpukit/score/include/rtems/score/watchdog.h	(revision 7c22114bf5044e03b01fa7b63de13639fc3589b8)
+++ cpukit/score/include/rtems/score/watchdog.h	(revision 7979e35617b49433694cf0a636d6ef2b58811ed4)
@@ -105,6 +105,6 @@
  */
 
-volatile unsigned32  _Watchdog_Sync_level;
-volatile unsigned32  _Watchdog_Sync_count;
+EXTERN volatile unsigned32  _Watchdog_Sync_level;
+EXTERN volatile unsigned32  _Watchdog_Sync_count;
 
 /*
Index: cpukit/score/src/thread.c
===================================================================
--- cpukit/score/src/thread.c	(revision 7c22114bf5044e03b01fa7b63de13639fc3589b8)
+++ cpukit/score/src/thread.c	(revision 7979e35617b49433694cf0a636d6ef2b58811ed4)
@@ -589,17 +589,18 @@
   executing = _Thread_Executing;
 
-  _Thread_Dispatch_disable_level = 0;
-
   /*
-   * Do the 'begin' here instead of after the context switch.
-   * This ensures 'switch' extensions can not be called before
-   * 'begin' extensions.
+   * Take care that 'begin' extensions get to complete before
+   * 'switch' extensions can run.  This means must keep dispatch
+   * disabled until all 'begin' extensions complete.
    */
-
+ 
   _User_extensions_Task_begin( executing );
-
-  if ( _Thread_Is_context_switch_necessary() )
-    _Thread_Dispatch();
-
+ 
+  /*
+   *  At this point, the dispatch disable level BETTER be 1.
+   */
+
+  _Thread_Enable_dispatch();
+ 
   (*executing->Start.entry_point)( executing->Start.initial_argument );
 
