m_macClipRect.right = 32000 ;
        m_macClipRect.bottom = 32000 ;
        ::GetPort( &m_macOrigPort ) ;
+
+    m_pen = *wxBLACK_PEN;
+    m_font = *wxNORMAL_FONT;
+    m_brush = *wxWHITE_BRUSH;
 };
 
 wxDC::~wxDC(void)
 
         return;
 
     PrepareDC(dc);
-    dc.Clear() ;
+//    dc.Clear() ; this eventually draws in the wrong background colour (appearance panels)
     
     int x = 0 ;
     int y = 0 ;
        m_label = st ;
        if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
                SetSizeOrDefault() ;
-       
-    wxClientDC dc(this);
-    OnDraw( dc ) ;
+
+       Refresh() ;     
+       MacUpdateImmediately() ;
+//    wxClientDC dc(this);
+//    OnDraw( dc ) ;
 }
 
 
   vsprintf(buffer,fmt,ap) ;
   strcat(buffer,";g") ;
-  debugstr(buffer) ;
+  c2pstr(buffer) ;
+  DebugStr((unsigned char*) buffer) ;
 
   va_end(ap);
 }
 
        m_macClipRect.right = 32000 ;
        m_macClipRect.bottom = 32000 ;
        ::GetPort( &m_macOrigPort ) ;
+
+    m_pen = *wxBLACK_PEN;
+    m_font = *wxNORMAL_FONT;
+    m_brush = *wxWHITE_BRUSH;
 };
 
 wxDC::~wxDC(void)
 
         return;
 
     PrepareDC(dc);
-    dc.Clear() ;
+//    dc.Clear() ; this eventually draws in the wrong background colour (appearance panels)
     
     int x = 0 ;
     int y = 0 ;
        m_label = st ;
        if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
                SetSizeOrDefault() ;
-       
-    wxClientDC dc(this);
-    OnDraw( dc ) ;
+
+       Refresh() ;     
+       MacUpdateImmediately() ;
+//    wxClientDC dc(this);
+//    OnDraw( dc ) ;
 }
 
 
   vsprintf(buffer,fmt,ap) ;
   strcat(buffer,";g") ;
-  debugstr(buffer) ;
+  c2pstr(buffer) ;
+  DebugStr((unsigned char*) buffer) ;
 
   va_end(ap);
 }