+
+#ifdef __UNIX__
+
+// ----------------------------------------------------------------------------
+// wxConvBrokenFileNames 
+// ----------------------------------------------------------------------------
+
+wxConvBrokenFileNames::wxConvBrokenFileNames()
+{
+    // decide which conversion to use for the file names
+
+    // (1) this variable exists for the sole purpose of specifying the encoding
+    //     of the filenames for GTK+ programs, so use it if it is set
+    wxString encName(wxGetenv(_T("G_FILENAME_ENCODING")));
+    encName.MakeUpper();
+    if ( !encName.empty() && encName != _T("UTF-8") && encName != _T("UTF8") )
+    {
+        m_conv = new wxCSConv(encName);
+    }
+    else // no G_FILENAME_ENCODING
+    {
+        if ( encName.empty() )
+            encName = wxLocale::GetSystemEncodingName().Upper();
+
+        // (2) if a non default locale is set, assume that the user wants his
+        //     filenames in this locale too
+        if ( !encName.empty() && encName != _T("UTF-8") && encName != _T("UTF8") )
+        {
+            wxSetEnv(_T("G_FILENAME_ENCODING"), encName);
+            m_conv = new wxMBConvLibc;
+        }
+        else
+        {
+            // (3) finally use UTF-8 by default
+            m_conv = new wxMBConvUTF8(wxMBConvUTF8::MAP_INVALID_UTF8_TO_OCTAL);
+        }
+    }
+}
+
+size_t
+wxConvBrokenFileNames::MB2WC(wchar_t *outputBuf,
+                             const char *psz,
+                             size_t outputSize) const
+{
+    return m_conv->MB2WC( outputBuf, psz, outputSize );
+}
+
+size_t
+wxConvBrokenFileNames::WC2MB(char *outputBuf,
+                             const wchar_t *psz,
+                             size_t outputSize) const
+{
+    return m_conv->WC2MB( outputBuf, psz, outputSize );
+}
+
+#endif
+