+wxString wxMessageOutputStderr::AppendLineFeedIfNeeded(const wxString& str)
+{
+    wxString strLF(str);
+    if ( strLF.empty() || *strLF.rbegin() != '\n' )
+        strLF += '\n';
+
+    return strLF;
+}
+
+void wxMessageOutputStderr::Output(const wxString& str)
+{
+    const wxWX2MBbuf buf = AppendLineFeedIfNeeded(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)
+{