wxVideoMode* m = new wxVideoMode(arr.Item(i));
                 PyObject* pyObj = wxPyConstructObject(m, wxT("wxVideoMode"), true);
                 PyList_Append(pyList, pyObj);
+                Py_DECREF(pyObj);
             }
             wxPyEndBlockThreads(blocked);
             return pyList;
 
 
 
 
-// Get the state of a key (true if pressed, false if not)
-// This is generally most useful getting the state of
-// the modifier or toggle keys.
-bool wxGetKeyState(wxKeyCode key);
+DocDeclStr(
+    bool , wxGetKeyState(wxKeyCode key),
+    "Get the state of a key (true if pressed or toggled on, false if not.)
+This is generally most useful getting the state of the modifier or
+toggle keys.  On some platforms those may be the only keys that work.
+", "");
+
 
 
 //---------------------------------------------------------------------------
 
             int count = self->GetDashes(&dashes);
             bool blocked = wxPyBeginBlockThreads();
             PyObject* retval = PyList_New(0);
-            for (int x=0; x<count; x++)
-                PyList_Append(retval, PyInt_FromLong(dashes[x]));
+            for (int x=0; x<count; x++) {
+                PyObject* pyint = PyInt_FromLong(dashes[x]);
+                PyList_Append(retval, pyint);
+                Py_DECREF(pyint);
+            }
             wxPyEndBlockThreads(blocked);
             return retval;
         }
 
                 wxTreeItemId *tii = new wxTreeItemId(array.Item(x));
                 PyObject* item = wxPyConstructObject((void*)tii, wxT("wxTreeItemId"), True);
                 PyList_Append(rval, item);
+                Py_DECREF(item);
             }
             wxPyEndBlockThreads(blocked);
             return rval;