diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index a60fa8bd1f1b1c7d3f9dab6dd990567eabbba67f..860e38b84dfe8eeff08fc67c136eee61116812f3 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -851,7 +851,7 @@ PyUnicode_FromFormatV(const char *format, va_list vargs)
  fail:
 	if (callresults) {
 		PyObject **callresult2 = callresults;
-		while (callresult2 <= callresult) {
+		while (callresult2 < callresult) {
 			Py_DECREF(*callresult2);
 			++callresult2;
 		}
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 08c1a0061ab57c0d42ed73e9fda9f17b9ee55586..2f4e5131525aa51f1a803b6564f1a7db70953557 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -314,14 +314,17 @@ builtin_chr(PyObject *self, PyObject *args)
 	return PyUnicode_FromOrdinal(x);
 }
 
-PyDoc_STRVAR(chr_doc,
+PyDoc_VAR(chr_doc) = PyDoc_STR(
 "chr(i) -> Unicode character\n\
 \n\
 Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff."
+)
 #ifndef Py_UNICODE_WIDE
+PyDoc_STR(
 "\nIf 0x10000 <= i, a surrogate pair is returned."
+)
 #endif
-);
+;
 
 
 static PyObject *
@@ -1219,14 +1222,17 @@ builtin_ord(PyObject *self, PyObject* obj)
 	return NULL;
 }
 
-PyDoc_STRVAR(ord_doc,
+PyDoc_VAR(ord_doc) = PyDoc_STR(
 "ord(c) -> integer\n\
 \n\
 Return the integer ordinal of a one-character string."
+)
 #ifndef Py_UNICODE_WIDE
+PyDoc_STR(
 "\nA valid surrogate pair is also accepted."
+)
 #endif
-);
+;
 
 
 static PyObject *
diff --git a/Python/errors.c b/Python/errors.c
index 2a84c8d30dc56324b24fcf696b55074cbc379ff2..37705227352ad13601f8754721da8cfc7c4aeb3f 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -333,9 +333,9 @@ PyErr_SetFromErrnoWithFilenameObject(PyObject *exc, PyObject *filenameObject)
 #endif /* Unix/Windows */
 #endif /* PLAN 9*/
 	if (filenameObject != NULL)
-		v = Py_BuildValue("(isO)", i, s, filenameObject);
+		v = Py_BuildValue("(iUO)", i, s, filenameObject);
 	else
-		v = Py_BuildValue("(is)", i, s);
+		v = Py_BuildValue("(iU)", i, s);
 	if (v != NULL) {
 		PyErr_SetObject(exc, v);
 		Py_DECREF(v);
@@ -413,9 +413,9 @@ PyObject *PyErr_SetExcFromWindowsErrWithFilenameObject(
 			s[--len] = '\0';
 	}
 	if (filenameObject != NULL)
-		v = Py_BuildValue("(isO)", err, s, filenameObject);
+		v = Py_BuildValue("(iUO)", err, s, filenameObject);
 	else
-		v = Py_BuildValue("(is)", err, s);
+		v = Py_BuildValue("(iU)", err, s);
 	if (v != NULL) {
 		PyErr_SetObject(exc, v);
 		Py_DECREF(v);