diff -ur C:\FGCVS\freeglut\include\GL\freeglut_std.h freeglut\include\GL\freeglut_std.h
--- C:\FGCVS\freeglut\include\GL\freeglut_std.h	Mon Nov 09 19:01:39 2009
+++ freeglut\include\GL\freeglut_std.h	Wed Nov 11 14:32:27 2009
@@ -57,7 +57,9 @@
 #  ifndef WIN32_LEAN_AND_MEAN
 #    define WIN32_LEAN_AND_MEAN 1
 #  endif
+#ifndef NOMINMAX
 #   define NOMINMAX
+#endif
 #   include <Windows.h>
 
 /* Windows static library */
diff -ur C:\FGCVS\PLIB\src\js\jsWindows.cxx PLIB\src\js\jsWindows.cxx
--- C:\FGCVS\PLIB\src\js\jsWindows.cxx	Fri Mar 13 11:31:50 2009
+++ PLIB\src\js\jsWindows.cxx	Fri Mar 13 15:58:18 2009
@@ -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 {
@@ -122,10 +124,13 @@
     // at least for USB.  Try to get the real name from the registry.
     if ( ! os->getOEMProductName ( this, name, sizeof(name) ) )
     {
-      ulSetError ( UL_WARNING,
-                   "JS: Failed to read joystick name from registry" ) ;
-
-      strncpy ( name, os->jsCaps.szPname, sizeof(name) ) ;
+        if ( ! getJSName( name, sizeof(name) ) )
+        {
+            ulSetError ( UL_WARNING,
+                    "JS: Failed to read joystick name from registry" ) ;
+ 
+            strncpy ( name, os->jsCaps.szPname, sizeof(name) ) ;
+        }
     }
 
     // Windows joystick drivers may provide any combination of
diff -ur 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	Tue Nov 10 18:24:11 2009
@@ -74,11 +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>
diff -ur C:\FGCVS\SimGear\source\simgear\props\props.cxx Simgear\simgear\props\props.cxx
--- C:\FGCVS\SimGear\source\simgear\props\props.cxx	Tue Nov 10 11:39:55 2009
+++ Simgear\simgear\props\props.cxx	Wed Nov 11 12:03:32 2009
@@ -872,7 +872,7 @@
 }
 
 SGPropertyNode *
-SGPropertyNode::SGPropertyNode::getChild (const string& name, int index,
+SGPropertyNode::getChild (const string& name, int index,
                                           bool create)
 {
   SGPropertyNode* node = getExistingChild(name.begin(), name.end(), index,
diff -ur C:\FGCVS\FlightGear\data\Input\Joysticks\Logitech\extreme-3d-pro.xml data\Input\Joysticks\Logitech\extreme-3d-pro.xml
--- C:\FGCVS\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 Jul 11 13:47:08 2009
@@ -30,6 +30,7 @@
  <name>Logitech Extreme 3D Pro</name>
  <name>Logitech Extreme 3D Pro USB</name>
  <name>Logitech  Extreme  3D  Pro USB</name>
+ <name>Logitech Extreme 3D</name>
 
  <axis n="0">
   <desc>Aileron</desc>
