+    if( !wxControl::CreateControl( parent, id, pos, size, style, validator,
+                                   name ) )
+        return FALSE;
+
+    wxString label1(wxStripMenuCodes(label));
+    wxXmString text( label1 );
+    
+    Widget parentWidget = (Widget) parent->GetClientWidget();
+
+    m_mainWidget = (WXWidget) XtVaCreateManagedWidget ("toggle",
+        xmToggleButtonWidgetClass, parentWidget,
+        wxFont::GetFontTag(), m_font.GetFontType(XtDisplay(parentWidget)),
+        XmNlabelString, text(),
+        XmNrecomputeSize, False,
+        // XmNindicatorOn, XmINDICATOR_CHECK_BOX,
+        // XmNfillOnSelect, False,
+        XmNtoggleMode, Is3State() ? XmTOGGLE_INDETERMINATE : XmTOGGLE_BOOLEAN,
+        NULL);
+    
+    XtAddCallback( (Widget)m_mainWidget,
+                   XmNvalueChangedCallback, (XtCallbackProc)wxCheckBoxCallback,
+                   (XtPointer)this );
+
+    XmToggleButtonSetState ((Widget) m_mainWidget, FALSE, TRUE);
+
+    AttachWidget( parent, m_mainWidget, (WXWidget)NULL,
+                  pos.x, pos.y, size.x, size.y );
+
+    ChangeBackgroundColour();
+    return TRUE;