-
-    // Get any command-line args passed to this program from the sys module
-    int    argc = 0;
-    char** argv = NULL;
-    bool blocked = wxPyBeginBlockThreads();
-    PyObject* sysargv = PySys_GetObject("argv");
-    if (sysargv != NULL) {
-        argc = PyList_Size(sysargv);
-        argv = new char*[argc+1];
-        int x;
-        for(x=0; x<argc; x++) {
-            PyObject *pyArg = PyList_GetItem(sysargv, x);
-            argv[x] = PyString_AsString(pyArg);
+    
+    // Only initialize wxWidgets once
+    if (! haveInitialized) {
+        
+        // Get any command-line args passed to this program from the sys module
+        int    argc = 0;
+        char** argv = NULL;
+        blocked = wxPyBeginBlockThreads();
+        PyObject* sysargv = PySys_GetObject("argv");
+        if (sysargv != NULL) {
+            argc = PyList_Size(sysargv);
+            argv = new char*[argc+1];
+            int x;
+            for(x=0; x<argc; x++) {
+                PyObject *pyArg = PyList_GetItem(sysargv, x);
+                argv[x] = PyString_AsString(pyArg);
+            }
+            argv[argc] = NULL;