args to call_object must be tuple or NULL
diff --git a/Objects/object.c b/Objects/object.c
index d7110ae..1643ec6 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -177,7 +177,7 @@
 {
 	if (v == NULL)
 		return newstringobject("<NULL>");
-	if (is_stringobject(v)) {
+	else if (is_stringobject(v)) {
 		INCREF(v);
 		return v;
 	}
@@ -185,19 +185,13 @@
 		return (*v->ob_type->tp_str)(v);
 	else {
 		object *func;
-		object *args;
 		object *res;
-		if (!is_instanceobject(v) || (func = getattr(v, "__str__")) == NULL) {
+		if (!is_instanceobject(v) ||
+		    (func = getattr(v, "__str__")) == NULL) {
 			err_clear();
 			return reprobject(v);
 		}
-		args = newtupleobject(0);
-		if (args == NULL)
-			res = NULL;
-		else {
-			res = call_object(func, args);
-			DECREF(args);
-		}
+		res = call_object(func, (object *)NULL);
 		DECREF(func);
 		return res;
 	}