Index: OpenSceneGraph/trunk/src/osgViewer/GraphicsWindowCarbon.cpp
===================================================================
--- OpenSceneGraph/trunk/src/osgViewer/GraphicsWindowCarbon.cpp (revision 11046)
+++ OpenSceneGraph/trunk/src/osgViewer/GraphicsWindowCarbon.cpp (revision 11207)
@@ -1054,7 +1054,21 @@
 class CarbonWindowingSystemInterface : public  DarwinWindowingSystemInterface {
 public:
-    CarbonWindowingSystemInterface()
-    :    DarwinWindowingSystemInterface()
-    {
+    CarbonWindowingSystemInterface() : DarwinWindowingSystemInterface()
+    {
+    }
+
+    virtual osg::GraphicsContext* createGraphicsContext(osg::GraphicsContext::Traits* traits) 
+    {
+        _init();
+
+        return createGraphicsContextImplementation<PixelBufferCarbon, GraphicsWindowCarbon>(traits);
+    }
+
+    virtual void _init()
+    {
+        if (_initialized) return;
+
+        DarwinWindowingSystemInterface::init();
+
         // register application event handler and AppleEventHandler to get quit-events:
         static const EventTypeSpec menueventSpec = {kEventClassCommand, kEventCommandProcess};
@@ -1062,9 +1076,5 @@
         status = AEInstallEventHandler( kCoreEventClass, kAEQuitApplication, NewAEEventHandlerUPP(QuitAppleEventHandler), 0, false);
     }
-    
-    virtual osg::GraphicsContext* createGraphicsContext(osg::GraphicsContext::Traits* traits) 
-    {
-        return createGraphicsContextImplementation<PixelBufferCarbon, GraphicsWindowCarbon>(traits);
-    }
+
 };
 
