Removed some redundant header includes.

dir(object) now returns object.__dict__.keys() even if __dict__ is not
a dictionary.
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index a09cd6f..0eedb65 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -28,12 +28,8 @@
 
 #include "node.h"
 #include "graminit.h"
-#include "sysmodule.h"
 #include "bltinmodule.h"
 #include "import.h"
-#include "pythonrun.h"
-#include "ceval.h"
-#include "modsupport.h"
 #include "compile.h"
 #include "eval.h"
 
@@ -356,7 +352,11 @@
 		}
 	}
 	else {
-		v = newlistobject(0);
+		v = PyObject_CallMethod(d, "keys", NULL);
+		if (v == NULL) {
+			PyErr_Clear();
+			v = newlistobject(0);
+		}
 	}
 	DECREF(d);
 	return v;