-    blocked = wxPyBeginBlockThreads();
-    if (! result)  {
-        PyErr_SetString(PyExc_SystemError, "wxEntryStart failed!");
-        goto error;
-    }
+        blocked = wxPyBeginBlockThreads();
+        if (! result)  {
+            PyErr_SetString(PyExc_SystemError,
+                            "wxEntryStart failed, unable to initialize wxWidgets!"
+#ifdef __WXGTK__
+                            "  (Is DISPLAY set properly?)"
+#endif
+                );
+            goto error;
+        }
+
+        // On wxGTK the locale will be changed to match the system settings,
+        // but Python before 2.4 needs to have LC_NUMERIC set to "C" in order
+        // for the floating point conversions and such to work right.
+#if defined(__WXGTK__) && PY_VERSION_HEX < 0x02040000
+        setlocale(LC_NUMERIC, "C");
+#endif
+
+        wxSystemOptions::SetOption(wxT("mac.textcontrol-use-mlte"), 1);
+        
+        // The stock objects were all NULL when they were loaded into
+        // SWIG generated proxies, so re-init those now...
+        wxPy_ReinitStockObjects(3);