diff -ur -x *.dsp -x *.vcproj -x *.obj -x *.lib C:/FGCVS/FlightGear/source/src/ATCDCL/ATCVoice.cxx FlightGear/src/ATCDCL/ATCVoice.cxx
--- C:/FGCVS/FlightGear/source/src/ATCDCL/ATCVoice.cxx	Mon May 12 12:07:41 2008
+++ FlightGear/src/ATCDCL/ATCVoice.cxx	Sat Mar 07 15:32:58 2009
@@ -39,9 +39,11 @@
 }
 
 FGATCVoice::~FGATCVoice() {
+#ifndef _MSC_VER
     if (rawSoundData)
         free( rawSoundData );
     delete SoundData;
+#endif
 }
 
 // Load the two voice files - one containing the raw sound data (.wav) and one containing the word positions (.vce).
diff -ur -x *.dsp -x *.vcproj -x *.obj -x *.lib C:/FGCVS/FlightGear/source/src/Main/util.cxx FlightGear/src/Main/util.cxx
--- C:/FGCVS/FlightGear/source/src/Main/util.cxx	Sun Jul 27 18:25:15 2008
+++ FlightGear/src/Main/util.cxx	Sat Mar 07 13:09:15 2009
@@ -20,6 +20,12 @@
 
 #include <simgear/compiler.h>
 
+#ifdef _MSC_VER
+// these MUST be included in this ORDER
+#include <sys/types.h>
+#include <sys/stat.h>
+#endif // _MSC_VER
+
 #include <math.h>
 
 #include <cstdlib>
@@ -216,6 +222,13 @@
     SGPropertyNode *prop = write ? w : r;
     prop->setStringValue(str);
     const char *result = prop->getStringValue();
+#ifdef _MSC_VER
+    if ( result[0] == 0 ) {
+        struct _stat buf;
+        if( _stat( str, &buf ) == 0 )
+            result = str;
+    }
+#endif // _MSC_VER
     return result[0] ? result : 0;
 }
 
diff -ur -x *.dsp -x *.vcproj -x *.obj -x *.lib C:/FGCVS/freeglut/include/GL/freeglut_std.h freeglut/include/GL/freeglut_std.h
--- C:/FGCVS/freeglut/include/GL/freeglut_std.h	Sat Apr 19 11:55:12 2008
+++ freeglut/include/GL/freeglut_std.h	Sat Mar 07 12:10:55 2009
@@ -55,7 +55,9 @@
 #   endif
 
 #   define WIN32_LEAN_AND_MEAN
+#ifndef NOMINMAX
 #   define NOMINMAX
+#endif
 #   include <Windows.h>
 
 /* Windows static library */
diff -ur -x *.dsp -x *.vcproj -x *.obj -x *.lib C:/FGCVS/PLIB/src/js/jsWindows.cxx PLIB/src/js/jsWindows.cxx
--- C:/FGCVS/PLIB/src/js/jsWindows.cxx	Fri Apr 18 11:03:44 2008
+++ PLIB/src/js/jsWindows.cxx	Wed Nov 05 14:32:12 2008
@@ -25,6 +25,8 @@
 
 #if defined (UL_WIN32)
 
+extern int getJSName( char * name, int len );
+
 #define _JS_MAX_AXES_WIN 8  /* X,Y,Z,R,U,V,POV_X,POV_Y */
 
 struct os_specific_s {
@@ -117,10 +119,13 @@
     // at least for USB.  Try to get the real name from the registry.
     if ( ! os->getOEMProductName ( this, name, sizeof(name) ) )
     {
-      ulSetError ( UL_WARNING,
+        if ( ! getJSName( name, sizeof(name) ) )
+        {
+            ulSetError ( UL_WARNING,
                    "JS: Failed to read joystick name from registry" ) ;
 
-      strncpy ( name, os->jsCaps.szPname, sizeof(name) ) ;
+            strncpy ( name, os->jsCaps.szPname, sizeof(name) ) ;
+        }
     }
 
     // Windows joystick drivers may provide any combination of
diff -ur -x *.dsp -x *.vcproj -x *.obj -x *.lib C:/FGCVS/pthreads/ptw32_InterlockedCompareExchange.c pthreads/ptw32_InterlockedCompareExchange.c
--- C:/FGCVS/pthreads/ptw32_InterlockedCompareExchange.c	Thu Mar 05 14:21:11 2009
+++ pthreads/ptw32_InterlockedCompareExchange.c	Thu Mar 05 18:23:22 2009
@@ -279,7 +279,7 @@
 #error Unsupported platform or compiler!
 #endif
 
-#endif
+//#endif
 
 /* *INDENT-ON* */
 
@@ -306,4 +306,4 @@
 
 #endif
 
-#endif
+//#endif
diff -ur -x *.dsp -x *.vcproj -x *.obj -x *.lib C:/FGCVS/SimGear/source/simgear/magvar/coremag.cxx Simgear/simgear/magvar/coremag.cxx
--- C:/FGCVS/SimGear/source/simgear/magvar/coremag.cxx	Wed Sep 10 11:28:57 2008
+++ Simgear/simgear/magvar/coremag.cxx	Sat Mar 07 12:22:18 2009
@@ -74,12 +74,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 //
-<<<<<<< coremag.cxx
-// $Id: coremag.cxx,v 1.5 2006-10-28 22:12:48 curt Exp $
-=======
 // $Id: coremag.cxx,v 1.6 2008/07/25 18:35:42 ehofman Exp $
->>>>>>> 1.6
-
 
 #include <stdio.h>
 #include <stdlib.h>
diff -ur -x *.dsp -x *.vcproj -x *.obj -x *.lib C:/FGCVS/SimGear/source/simgear/scene/model/BoundingVolumeBuildVisitor.hxx Simgear/simgear/scene/model/BoundingVolumeBuildVisitor.hxx
--- C:/FGCVS/SimGear/source/simgear/scene/model/BoundingVolumeBuildVisitor.hxx	Sun Mar 01 16:40:35 2009
+++ Simgear/simgear/scene/model/BoundingVolumeBuildVisitor.hxx	Thu Mar 12 14:55:11 2009
@@ -296,21 +296,57 @@
                 break;
             }
         }    
-
+#undef BIG_DEBUG_MSG
         void addPoint(unsigned i1)
         {
+//#if defined(_MSC_VER)
+            if( i1 >= _vertices.size() ) {
+                printf( "BoundingVolumeBuildVisitor: Out of range - addPoint(%d) s=%d\n", i1, _vertices.size() );
+                return;
+            }
+#ifdef BIG_DEBUG_MSG
+         printf( "BoundingVolumeBuildVisitor: addPoint(%d) s=%d\n", i1, _vertices.size() );
+#endif
+//#endif
             addPoint(_vertices[i1]);
         }
         void addLine(unsigned i1, unsigned i2)
         {
+//#if defined(_MSC_VER)
+            if(( i1 >= _vertices.size() )||( i2 >= _vertices.size() )) {
+                printf( "BoundingVolumeBuildVisitor: Out of range - addLine(%d,%d) s=%d\n", i1, i2, _vertices.size() );
+                return;
+            }
+#ifdef BIG_DEBUG_MSG
+         printf( "BoundingVolumeBuildVisitor: addLine(%d,%d) s=%d\n", i1, i2, _vertices.size() );
+#endif
+//#endif
             addLine(_vertices[i1], _vertices[i2]);
         }
         void addTriangle(unsigned i1, unsigned i2, unsigned i3)
         {
+//#if defined(_MSC_VER)
+            if(( i1 >= _vertices.size() )||( i2 >= _vertices.size() )||( i3 >= _vertices.size() )) {
+                printf( "BoundingVolumeBuildVisitor: Out of range - addTriangle(%d,%d,%d) s=%d\n", i1, i2, i3, _vertices.size() );
+                return;
+            }
+#ifdef BIG_DEBUG_MSG
+         printf( "BoundingVolumeBuildVisitor: addTriangle(%d,%d,%d) s=%d\n", i1, i2, i3, _vertices.size() );
+#endif
+//#endif
             addTriangle(_vertices[i1], _vertices[i2], _vertices[i3]);
         }
         void addQuad(unsigned i1, unsigned i2, unsigned i3, unsigned i4)
         {
+//#if defined(_MSC_VER)
+            if(( i1 >= _vertices.size() )||( i2 >= _vertices.size() )||( i3 >= _vertices.size() )||( i4 >= _vertices.size() )) {
+                printf( "BoundingVolumeBuildVisitor: Out of range - addQuad(%d,%d,%d,%d) s=%d\n", i1, i2, i3, i4, _vertices.size() );
+                return;
+            }
+#ifdef BIG_DEBUG_MSG
+         printf( "BoundingVolumeBuildVisitor: addQuad(%d,%d,%d,%d) s=%d\n", i1, i2, i3, i4, _vertices.size() );
+#endif
+//#endif
             addQuad(_vertices[i1], _vertices[i2], _vertices[i3], _vertices[i4]);
         }
 
diff -ur -x *.dsp -x *.vcproj -x *.obj -x *.lib C:/FGCVS/SimGear/source/simgear/sound/sample_openal.cxx Simgear/simgear/sound/sample_openal.cxx
--- C:/FGCVS/SimGear/source/simgear/sound/sample_openal.cxx	Mon Dec 22 20:23:37 2008
+++ Simgear/simgear/sound/sample_openal.cxx	Thu Mar 12 15:08:53 2009
@@ -18,22 +18,12 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 //
-// $Id: sample_openal.cxx,v 1.33 2008/12/12 07:41:44 fredb Exp $
+// $Id: sample_openal.cxx,v 1.32 2008/10/23 18:46:55 curt Exp $
 
 #ifdef HAVE_CONFIG_H
 #  include <simgear_config.h>
 #endif
 
-#if defined( __APPLE__ )
-# define AL_ILLEGAL_ENUM AL_INVALID_ENUM
-# define AL_ILLEGAL_COMMAND AL_INVALID_OPERATION
-# include <OpenAL/al.h>
-# include <OpenAL/alut.h>
-#else
-# include <AL/al.h>
-# include <AL/alut.h>
-#endif
-
 #include <simgear/debug/logstream.hxx>
 #include <simgear/misc/sg_path.hxx>
 #include <simgear/structure/exception.hxx>
@@ -136,6 +126,7 @@
   }
 
 #else
+    .error Pre alut 1.0 version NOT supported
         //
 	// pre 1.0 alut version
         //
diff -ur -x *.dsp -x *.vcproj -x *.obj -x *.lib C:/FGCVS/SimGear/source/simgear/sound/sample_openal.hxx Simgear/simgear/sound/sample_openal.hxx
--- C:/FGCVS/SimGear/source/simgear/sound/sample_openal.hxx	Fri Oct 31 15:14:15 2008
+++ Simgear/simgear/sound/sample_openal.hxx	Thu Mar 05 18:15:13 2009
@@ -48,7 +48,11 @@
 # include <OpenAL/al.h>
 # include <OpenAL/alut.h>
 #else
+#ifdef USE_OPENAL_SDK
+# include <al.h>
+#else
 # include <AL/al.h>
+#endif
 # include <AL/alut.h>
 #endif
 
diff -ur -x *.dsp -x *.vcproj -x *.obj -x *.lib C:/FGCVS/SimGear/source/simgear/sound/soundmgr_openal.cxx Simgear/simgear/sound/soundmgr_openal.cxx
--- C:/FGCVS/SimGear/source/simgear/sound/soundmgr_openal.cxx	Wed Sep 10 11:29:08 2008
+++ Simgear/simgear/sound/soundmgr_openal.cxx	Thu Mar 12 14:55:21 2009
@@ -29,14 +29,6 @@
 
 #include <simgear/compiler.h>
 
-#if defined(__APPLE__)
-# include <OpenAL/al.h>
-# include <OpenAL/alc.h>
-#else
-# include <AL/al.h>
-# include <AL/alc.h>
-#endif
-
 #if defined (__APPLE__)
 #  ifdef __GNUC__
 #    if ( __GNUC__ >= 3 ) && ( __GNUC_MINOR__ >= 3 )
diff -ur -x *.dsp -x *.vcproj -x *.obj -x *.lib C:/FGCVS/SimGear/source/simgear/sound/soundmgr_openal.hxx Simgear/simgear/sound/soundmgr_openal.hxx
--- C:/FGCVS/SimGear/source/simgear/sound/soundmgr_openal.hxx	Fri Oct 31 15:14:15 2008
+++ Simgear/simgear/sound/soundmgr_openal.hxx	Thu Mar 05 18:15:37 2009
@@ -46,8 +46,12 @@
 # include <OpenAL/al.h>
 # include <OpenAL/alc.h>
 #else
+#ifdef USE_OPENAL_SDK
+# include <al.h>
+#else
 # include <AL/al.h>
 # include <AL/alc.h>
+#endif
 #endif
 
 #include "sample_openal.hxx"
--- C:/FGFS/flightgear/data/Input/Joysticks/Logitech/extreme-3d-pro.xml	Wed Mar 01 19:17:26 2006
+++ data/Input/Joysticks/Logitech/extreme-3d-pro.xml	Sat Mar 07 15:49:02 2009
@@ -27,6 +27,7 @@
 
  <name>Logitech Extreme Digital 3D Pro</name>
  <name>Logitech Logitech Extreme 3D Pro</name>
+ <name>Logitech Extreme 3D</name>
  <name>Logitech Extreme 3D Pro</name>
  <name>Logitech Extreme 3D Pro USB</name>
  <name>Logitech  Extreme  3D  Pro USB</name>
