Index: src/osgViewer/GraphicsWindowWin32.cpp
===================================================================
--- src/osgViewer/GraphicsWindowWin32.cpp	(revision 11106)
+++ src/osgViewer/GraphicsWindowWin32.cpp	(working copy)
@@ -2057,6 +2057,10 @@
 void GraphicsWindowWin32::useCursor( bool cursorOn )
 {
     _traits->useCursor = cursorOn;
+    if (_traits->useCursor == false)
+    {
+       setCursor(NoCursor);
+    }    
 }
 
 void GraphicsWindowWin32::setCursor( MouseCursor mouseCursor )
@@ -2074,7 +2078,7 @@
         if (newCursor == _currentCursor) return;
     
         _currentCursor = newCursor;
-        _traits->useCursor = (_currentCursor != NULL);
+        _traits->useCursor = (_currentCursor != NULL) && (_mouseCursor != NoCursor);
     
         if (_mouseCursor != InheritCursor)
             ::SetCursor(_currentCursor);
@@ -2490,6 +2494,15 @@
                 case HTGROWBOX:
                     setCursorImpl(BottomRightCorner);
                     break;
+                case HTSYSMENU:
+                case HTCAPTION:
+                case HTMAXBUTTON:
+                case HTMINBUTTON:
+                case HTCLOSE:
+                case HTHELP:
+                   setCursorImpl(LeftArrowCursor);
+                   break;
+
                 default:
                     if (_traits->useCursor && _appMouseCursor != InheritCursor)
                         setCursorImpl(_appMouseCursor);
