***************
*** 114,147 ****
  #   define INLINE 
  #endif
  
  /*
!  * Utility macros: STRINGIFY takes an argument and wraps it in "" (double
!  * quotation marks), JOIN joins two arguments.
   */
! 
! #define VERBATIM(x) x
! #ifdef _MSC_VER
! # define STRINGIFY(x) STRINGIFY1(x)
! # define STRINGIFY1(x) #x
! # define JOIN(a,b) JOIN1(a,b)
! # define JOIN1(a,b) a##b
! #else
! # ifdef RESOURCE_INCLUDED
  #  define STRINGIFY(x) STRINGIFY1(x)
  #  define STRINGIFY1(x) #x
  #  define JOIN(a,b) JOIN1(a,b)
  #  define JOIN1(a,b) a##b
- # else
- #  ifdef __STDC__
- #   define STRINGIFY(x) #x
- #   define JOIN(a,b) a##b
- #  else
- #   define STRINGIFY(x) "x"
- #   define JOIN(a,b) VERBATIM(a)VERBATIM(b)
- #  endif
- # endif
  #endif
  
  /*
   * Special macro to define mutexes, that doesn't do anything
   * if we are not using threads.
--- 104,133 ----
  #   define INLINE 
  #endif
  
+ 
  /*
!  * Utility macro: STRINGIFY takes an argument and wraps it in "" (double
!  * quotation marks).
   */
! #ifndef STRINGIFY
  #  define STRINGIFY(x) STRINGIFY1(x)
  #  define STRINGIFY1(x) #x
+ #endif
+ #ifndef JOIN
  #  define JOIN(a,b) JOIN1(a,b)
  #  define JOIN1(a,b) a##b
  #endif
  
+ /* 
+  * A special definition used to allow this header file to be included
+  * from windows resource files so that they can obtain version
+  * information.  RC_INVOKED is defined by default by the RC tool.
+  * Resource compilers don't like all the C stuff, like typedefs and
+  * procedure declarations, that occur below, so block them out.
+  */
+ 
+ #ifndef RC_INVOKED
+ 
  /*
   * Special macro to define mutexes, that doesn't do anything
   * if we are not using threads.
***************
*** 167,180 ****
  #define Tcl_ConditionFinalize(condPtr)
  #endif /* TCL_THREADS */
  
- /* 
-  * A special definition used to allow this header file to be included 
-  * in resource files so that they can get obtain version information from
-  * this file.  Resource compilers don't like all the C stuff, like typedefs
-  * and procedure declarations, that occur below.
-  */
- #ifndef RESOURCE_INCLUDED
- 
  
  #ifndef BUFSIZ
  #   include <stdio.h>
--- 153,158 ----
***************
*** 2271,2277 ****
  
  EXTERN int		Tcl_AppInit _ANSI_ARGS_((Tcl_Interp *interp));
  
! #endif /* RESOURCE_INCLUDED */
  
  #undef TCL_STORAGE_CLASS
  #define TCL_STORAGE_CLASS DLLIMPORT
--- 2240,2246 ----
  
  EXTERN int		Tcl_AppInit _ANSI_ARGS_((Tcl_Interp *interp));
  
! #endif /* RC_INVOKED */
  
  #undef TCL_STORAGE_CLASS
  #define TCL_STORAGE_CLASS DLLIMPORT

