}
 #endif
 
+#ifdef __WXGTK20__
+// Escapes string so that it is valid Pango markup XML string:
+wxString wxEscapeStringForPangoMarkup(const wxString& str)
+{
+    size_t len = str.length();
+    wxString out;
+    out.Alloc(len);
+    for (size_t i = 0; i < len; i++)
+    {
+        wxChar c = str[i];
+        switch (c)
+        {
+            case _T('&'):
+                out << _T("&");
+                break;
+            case _T('<'):
+                out << _T("<");
+                break;
+            case _T('>'):
+                out << _T(">");
+                break;
+            case _T('\''):
+                out << _T("'");
+                break;
+            case _T('"'):
+                out << _T(""");
+                break;
+            default:
+                out << c;
+                break;
+        }
+    }
+    return out;
+}
+#endif
+
+
 // ----------------------------------------------------------------------------
 // display characterstics
 // ----------------------------------------------------------------------------
     info.shortName << _T("univ");
     info.name << _T("/wxUniversal");
 #endif
-    info.versionMajor = GTK_MAJOR_VERSION;
-    info.versionMinor = GTK_MINOR_VERSION;
+    info.versionMajor = gtk_major_version;
+    info.versionMinor = gtk_minor_version;
     info.os = wxGTK;
     return info;
 }
 // subprocess routines
 // ----------------------------------------------------------------------------
 
-extern "C"
+extern "C" {
+static
 void GTK_EndProcessDetector(gpointer data, gint source,
                             GdkInputCondition WXUNUSED(condition) )
 {
 
    wxHandleProcessTermination(proc_data);
 }
+}
 
 int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
 {