* timemodule.c: Add hack for Solaris 2.
* posixmodule.c: don't prototype getcwd() -- it's not portable...
* mappingobject.c: double-check validity of last_name_char in
  dict{lookup,insert,remove}.
* arraymodule.c: need memmove only for non-STDC Suns.
* Makefile: comment out HTML_LIBS and XT_USE by default
* pythonmain.c: don't prototype getopt() -- it's not standardized
* socketmodule.c: cast flags arg to {get,set}sockopt() and addrbuf arg to
  recvfrom() to (ANY*).
* pythonrun.c (initsigs): fix prototype, make it static
* intobject.c (LONG_BIT): only #define it if not already defined
* classobject.[ch]: remove all references to unused instance_convert()
* mappingobject.c (getmappingsize): Don't return NULL in int function.
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index 65512be..972560d 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -572,7 +572,7 @@
 {
 	if (mp == NULL || !is_mappingobject(mp)) {
 		err_badcall();
-		return NULL;
+		return 0;
 	}
 	return ((mappingobject *)mp)->ma_used;
 }
@@ -773,7 +773,7 @@
 	object *v;
 	char *key;
 {
-	if (key != last_name_char) {
+	if (key != last_name_char || strcmp(key, getstringvalue(last_name_object)) != 0) {
 		XDECREF(last_name_object);
 		last_name_object = newstringobject(key);
 		if (last_name_object == NULL) {
@@ -791,7 +791,7 @@
 	char *key;
 	object *item;
 {
-	if (key != last_name_char) {
+	if (key != last_name_char || strcmp(key, getstringvalue(last_name_object)) != 0) {
 		XDECREF(last_name_object);
 		last_name_object = newstringobject(key);
 		if (last_name_object == NULL) {
@@ -808,7 +808,8 @@
 	object *v;
 	char *key;
 {
-	if (key != last_name_char) {
+	if (key != last_name_char ||
+	    strcmp(key, getstringvalue(last_name_object)) != 0) {
 		XDECREF(last_name_object);
 		last_name_object = newstringobject(key);
 		if (last_name_object == NULL) {