+void wxMessageOutputBest::Output(const wxString& str)
+{
+#ifdef __WINDOWS__
+    if ( !IsInConsole() )
+    {
+        ::MessageBox(NULL, str.wx_str(), _T("wxWidgets"),
+                     MB_ICONINFORMATION | MB_OK);
+    }
+    else
+#endif // __WINDOWS__/!__WINDOWS__
+    {
+        const wxWX2MBbuf buf = str.mb_str();
+
+        if ( buf )
+            fprintf(stderr, "%s", (const char*) buf);
+        else // print at least something
+            fprintf(stderr, "%s", (const char*) str.ToAscii());
+    }
+}
+
+// ----------------------------------------------------------------------------
+// wxMessageOutputStderr
+// ----------------------------------------------------------------------------
+
+void wxMessageOutputStderr::Output(const wxString& str)
+{
+    const wxWX2MBbuf buf = str.mb_str();
+
+    if ( buf )
+        fprintf(stderr, "%s", (const char*) buf);
+    else // print at least something
+        fprintf(stderr, "%s", (const char*) str.ToAscii());
+}
+
+// ----------------------------------------------------------------------------
+// wxMessageOutputDebug
+// ----------------------------------------------------------------------------
+
+void wxMessageOutputDebug::Output(const wxString& str)
+{
+    wxString out(str);