virtual void Add( wxSizer *sizer, int option = 0, int flag = 0, int border = 0, wxObject* userData = NULL );
    virtual void Add( int width, int height, int option = 0, int flag = 0, int border = 0, wxObject* userData = NULL );
 
+   virtual void Insert( int before, wxWindow *window, int option = 0, int flag = 0, int border = 0, wxObject* userData = NULL );
+   virtual void Insert( int before, wxSizer *sizer, int option = 0, int flag = 0, int border = 0, wxObject* userData = NULL );
+   virtual void Insert( int before, int width, int height, int option = 0, int flag = 0, int border = 0, wxObject* userData = NULL );
+
    virtual void Prepend( wxWindow *window, int option = 0, int flag = 0, int border = 0, wxObject* userData = NULL );
    virtual void Prepend( wxSizer *sizer, int option = 0, int flag = 0, int border = 0, wxObject* userData = NULL );
    virtual void Prepend( int width, int height, int option = 0, int flag = 0, int border = 0, wxObject* userData = NULL );
 
     m_children.Insert( new wxSizerItem( width, height, option, flag, border, userData ) );
 }
 
+void wxSizer::Insert( int before, wxWindow *window, int option, int flag, int border, wxObject* userData )
+{
+    m_children.Insert( before, new wxSizerItem( window, option, flag, border, userData ) );
+}
+
+void wxSizer::Insert( int before, wxSizer *sizer, int option, int flag, int border, wxObject* userData )
+{
+    m_children.Insert( before, new wxSizerItem( sizer, option, flag, border, userData ) );
+}
+
+void wxSizer::Insert( int before, int width, int height, int option, int flag, int border, wxObject* userData )
+{
+    m_children.Insert( before, new wxSizerItem( width, height, option, flag, border, userData ) );
+}
+
 bool wxSizer::Remove( wxWindow *window )
 {
     wxASSERT( window );