don't complain about too many args if arg is a dict
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 7df894e..cb76d77 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -921,7 +921,7 @@
 			XDECREF(temp);
 		} /* '%' */
 	} /* until end */
-	if (argidx < arglen) {
+	if (argidx < arglen && !dict) {
 		err_setstr(TypeError, "not all arguments converted");
 		goto error;
 	}