-  m_needParent = TRUE;
-
-  PreCreation( parent, id, pos, size, style, name );
-
-  m_widget = gtk_frame_new(m_label);
-
-  m_parent->AddChild( this );
-
-  (m_parent->m_insertCallback)( m_parent, this );
+    m_needParent = TRUE;
+
+    if (!PreCreation( parent, pos, size ) ||
+        !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
+    {
+        wxFAIL_MSG( wxT("wxStaticBox creation failed") );
+           return FALSE;
+    }
+
+    m_isStaticBox = TRUE;
+    
+    if (label.IsEmpty())
+        m_widget = gtk_frame_new( (char*) NULL );
+    else
+        m_widget = gtk_frame_new( m_label.mbc_str() );
+
+    m_parent->DoAddChild( this );