m_lwin = new wxLayoutWindow(this);
    m_lwin->SetEventId(ID_CLICK);
    m_lwin->GetLayoutList().SetEditable(true);
+   m_lwin->Clear(wxROMAN,16,wxNORMAL,wxNORMAL, false);
    m_lwin->SetFocus();
 };
 
 MyFrame::AddSampleText(wxLayoutList &llist)
 {
 
-   llist.Clear(wxROMAN,16,wxNORMAL,wxNORMAL, false);
-
    llist.Insert("The quick brown fox jumps over the lazy dog.");
    llist.LineBreak();
    llist.Insert("Hello ");
    llist.Insert("blue");
    llist.SetFont(-1,-1,-1,-1,-1,"black");
    llist.Insert(" and ");
-   llist.SetFont(-1,-1,-1,-1,-1,"red","black");
-   llist.Insert("red on black");
+   llist.SetFont(-1,-1,-1,-1,-1,"green","black");
+   llist.Insert("green on black");
    llist.SetFont(-1,-1,-1,-1,-1,"black","white");
    llist.Insert(" text.");
    llist.LineBreak();
 
 
    //FIXME: who frees the brush, how long does it need to exist?
    if(m_DefaultSetting)
-   {
       m_DefaultSetting->Draw(dc,wxPoint(0,0),0,true);
-      dc.SetBackground( wxBrush(* m_DefaultSetting->GetBGColour(),wxSOLID));
-   }
-   else
-      dc.SetBackground( wxBrush(wxColour("White"), wxSOLID) ); 
 
-   dc.Clear();
-
-
-   
    // we calculate everything for drawing a line, then rewind to the
    // begin of line and actually draw it
    i = begin();
 
    void Clear(int family = wxROMAN, int size=12, int style=wxNORMAL, int weight=wxNORMAL,
                     int underline=0, char const *fg="black", char const *bg="white");
 
+   /// return a pointer to the default settings:
+   wxLayoutObjectCmd const *GetDefaults(void) const { return m_DefaultSetting ; }
+
    //@}
 protected:
    /// font parameters:
 
 
 #include   "wxllist.h"
 
+#ifdef   BROKEN_COMPILER
+#   define   virtual
+#endif
+
 class wxLayoutWindow : public wxScrolledWindow
 {
 public:
 
    wxLayoutList & GetLayoutList(void) { return m_llist; }
 
+   // clears the window and sets default parameters:
+   void Clear(int family = wxROMAN, int size=12, int style=wxNORMAL, int weight=wxNORMAL,
+              int underline=0, char const *fg="black", char const
+              *bg="white")
+      {
+         GetLayoutList().Clear(family,size,style,weight,underline,fg,bg);
+         SetBackgroundColour( *GetLayoutList().GetDefaults()->GetBGColour());
+      }
+
    //virtual void OnDraw(wxDC &dc);
    void OnPaint(wxPaintEvent &WXUNUSED(event));
-   /*virtual*/ void OnMouse(wxMouseEvent& event);
-   /*virtual*/ void OnChar(wxKeyEvent& event);
+   virtual void OnMouse(wxMouseEvent& event);
+   virtual void OnChar(wxKeyEvent& event);
    void UpdateScrollbars(void);
    void Print(void);
    void Erase(void)
    void SetEventId(int id) { m_EventId = id; }
    wxPoint const &GetClickPosition(void) const { return
                                                     m_ClickPosition; }
+   virtual ~wxLayoutList() {} ;
 private:
    /// for sending events
    wxWindow *m_Parent;
    DECLARE_EVENT_TABLE()
 };
 
+#ifdef   BROKEN_COMPILER
+#undef   virtual
+#endif
+
 #endif