Use PyOS_snprintf instead of sprintf.
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index b6e4460..8e4ca2e 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -779,7 +779,7 @@
 			static char errmsg[] =
 			    "argument %d to map() must support iteration";
 			char errbuf[sizeof(errmsg) + 25];
-			sprintf(errbuf, errmsg, i+2);
+			PyOS_snprintf(errbuf, sizeof(errbuf), errmsg, i+2);
 			PyErr_SetString(PyExc_TypeError, errbuf);
 			goto Fail_2;
 		}
diff --git a/Python/dynload_dl.c b/Python/dynload_dl.c
index 5a62d6f..4675a67 100644
--- a/Python/dynload_dl.c
+++ b/Python/dynload_dl.c
@@ -21,6 +21,6 @@
 {
 	char funcname[258];
 
-	sprintf(funcname, "init%.200s", shortname);
+	PyOS_snprintf(funcname, sizeof(funcname), "init%.200s", shortname);
 	return dl_loadmod(Py_GetProgramName(), pathname, funcname);
 }
diff --git a/Python/dynload_hpux.c b/Python/dynload_hpux.c
index e435cd8..cbdb35a 100644
--- a/Python/dynload_hpux.c
+++ b/Python/dynload_hpux.c
@@ -39,11 +39,12 @@
 		char buf[256];
 		if (Py_VerboseFlag)
 			perror(pathname);
-		sprintf(buf, "Failed to load %.200s", pathname);
+		PyOS_snprintf(buf, sizeof(buf), "Failed to load %.200s",
+			      pathname);
 		PyErr_SetString(PyExc_ImportError, buf);
 		return NULL;
 	}
-	sprintf(funcname, FUNCNAME_PATTERN, shortname);
+	PyOS_snprintf(funcname, sizeof(funcname), FUNCNAME_PATTERN, shortname);
 	if (Py_VerboseFlag)
 		printf("shl_findsym %s\n", funcname);
 	shl_findsym(&lib, funcname, TYPE_UNDEFINED, (void *) &p);
diff --git a/Python/dynload_mac.c b/Python/dynload_mac.c
index c8c9646..bb5f4fb 100644
--- a/Python/dynload_mac.c
+++ b/Python/dynload_mac.c
@@ -66,7 +66,8 @@
 	err = ResolveAliasFile(&libspec, 1, &isfolder, &didsomething);
 #endif
 	if ( err ) {
-		sprintf(buf, "%.200s: %.200s", pathname, PyMac_StrError(err));
+		PyOS_snprintf(buf, sizeof(buf),
+			      "%.200s: %.200s", pathname, PyMac_StrError(err));
 		PyErr_SetString(PyExc_ImportError, buf);
 		return NULL;
 	}
@@ -91,25 +92,26 @@
 		** the dynamic module was meant for a different Python.
 		*/
 		if (errMessage[0] == 10 && strncmp((char *)errMessage+1, "PythonCore", 10) == 0 ) {
-			sprintf(buf, "Dynamic module was built for %s version of MacPython",
-				(err == cfragImportTooOldErr ? "a newer" : "an older"));
+			PyOS_snprintf(buf, sizeof(buf),
+		      "Dynamic module was built for %s version of MacPython",
+		      (err == cfragImportTooOldErr ? "a newer" : "an older"));
 			PyErr_SetString(PyExc_ImportError, buf);
 			return NULL;
 		}
 	}
 	if ( err ) {
-		sprintf(buf, "%.*s: %.200s",
+		PyOS_snprintf(buf, sizeof(buf), "%.*s: %.200s",
 			errMessage[0], errMessage+1,
 			PyMac_StrError(err));
 		PyErr_SetString(PyExc_ImportError, buf);
 		return NULL;
 	}
 	/* Locate the address of the correct init function */
-	sprintf(funcname, "init%.200s", shortname);
+	PyOS_snprintf(funcname, sizeof(funcname), "init%.200s", shortname);
 	err = FindSymbol(connID, Pstring(funcname), &symAddr, &class);
 	if ( err ) {
-		sprintf(buf, "%s: %.200s",
-			funcname, PyMac_StrError(err));
+		PyOS_snprintf(buf, sizeof(buf), "%s: %.200s",
+			      funcname, PyMac_StrError(err));
 		PyErr_SetString(PyExc_ImportError, buf);
 		return NULL;
 	}
diff --git a/Python/dynload_next.c b/Python/dynload_next.c
index 2b34315..671b26f 100644
--- a/Python/dynload_next.c
+++ b/Python/dynload_next.c
@@ -44,7 +44,7 @@
 	dl_funcptr p = NULL;
 	char funcname[258];
 
-	sprintf(funcname, "_init%.200s", shortname);
+	PyOS_snprintf(funcname, sizeof(funcname), "_init%.200s", shortname);
 
 #ifdef USE_RLD
 	{
diff --git a/Python/dynload_os2.c b/Python/dynload_os2.c
index a3eb468..d660e27 100644
--- a/Python/dynload_os2.c
+++ b/Python/dynload_os2.c
@@ -31,14 +31,14 @@
 
 	if (rc != NO_ERROR) {
 		char errBuf[256];
-		sprintf(errBuf,
-			"DLL load failed, rc = %d: %.200s",
-			rc, failreason);
+		PyOS_snprintf(errBuf, sizeof(errBuf),
+			      "DLL load failed, rc = %d: %.200s",
+			      rc, failreason);
 		PyErr_SetString(PyExc_ImportError, errBuf);
 		return NULL;
 	}
 
-	sprintf(funcname, "init%.200s", shortname);
+	PyOS_snprintf(funcname, sizeof(funcname), "init%.200s", shortname);
 	rc = DosQueryProcAddr(hDLL, 0L, funcname, &p);
 	if (rc != NO_ERROR)
 		p = NULL; /* Signify Failure to Acquire Entrypoint */
diff --git a/Python/dynload_shlib.c b/Python/dynload_shlib.c
index 569a6f5..e8a04ce 100644
--- a/Python/dynload_shlib.c
+++ b/Python/dynload_shlib.c
@@ -57,11 +57,12 @@
 
 	if (strchr(pathname, '/') == NULL) {
 		/* Prefix bare filename with "./" */
-		sprintf(pathbuf, "./%-.255s", pathname);
+		PyOS_snprintf(pathbuf, sizeof(pathbuf), "./%-.255s", pathname);
 		pathname = pathbuf;
 	}
 
-	sprintf(funcname, LEAD_UNDERSCORE "init%.200s", shortname);
+	PyOS_snprintf(funcname, sizeof(funcname), 
+		      LEAD_UNDERSCORE "init%.200s", shortname);
 
 	if (fp != NULL) {
 		int i;
diff --git a/Python/dynload_win.c b/Python/dynload_win.c
index 155a9d6..9062cf3 100644
--- a/Python/dynload_win.c
+++ b/Python/dynload_win.c
@@ -159,7 +159,7 @@
 	dl_funcptr p;
 	char funcname[258], *import_python;
 
-	sprintf(funcname, "init%.200s", shortname);
+	PyOS_snprintf(funcname, sizeof(funcname), "init%.200s", shortname);
 
 #ifdef MS_WIN32
 	{
@@ -201,9 +201,9 @@
 			/* Problem: could not get the error message.
 			   This should not happen if called correctly. */
 			if (theLength == 0) {
-				sprintf(errBuf,
-					"DLL load failed with error code %d",
-					errorCode);
+				PyOS_snprintf(errBuf, sizeof(errBuf),
+				      "DLL load failed with error code %d",
+					      errorCode);
 			} else {
 				size_t len;
 				/* For some reason a \r\n
@@ -225,16 +225,16 @@
 		} else {
 			char buffer[256];
 
-			sprintf(buffer,"python%d%d.dll",
+			PyOS_snprintf(buffer, sizeof(buffer), "python%d%d.dll",
 				PY_MAJOR_VERSION,PY_MINOR_VERSION);
 			import_python = GetPythonImport(hDLL);
 
 			if (import_python &&
 			    strcasecmp(buffer,import_python)) {
-				sprintf(buffer,
-					"Module use of %.150s conflicts "
-					"with this version of Python.",
-					import_python);
+				PyOS_snprintf(buffer, sizeof(buffer),
+					      "Module use of %.150s conflicts "
+					      "with this version of Python.",
+					      import_python);
 				PyErr_SetString(PyExc_ImportError,buffer);
 				FreeLibrary(hDLL);
 				return NULL;
@@ -251,14 +251,16 @@
 		    strchr(pathname, '/') == NULL)
 		{
 			/* Prefix bare filename with ".\" */
-			sprintf(pathbuf, ".\\%-.13s", pathname);
+			PyOS_snprintf(pathbuf, sizeof(pathbuf),
+				      ".\\%-.13s", pathname);
 			pathname = pathbuf;
 		}
 		hDLL = LoadLibrary(pathname);
 		if (hDLL < HINSTANCE_ERROR){
 			char errBuf[256];
-			sprintf(errBuf,
-				"DLL load failed with error code %d", hDLL);
+			PyOS_snprintf(errBuf, sizeof(errBuf),
+				      "DLL load failed with error code %d",
+				      hDLL);
 			PyErr_SetString(PyExc_ImportError, errBuf);
 			return NULL;
 		}
diff --git a/Python/getversion.c b/Python/getversion.c
index b0ef389..7af16fc 100644
--- a/Python/getversion.c
+++ b/Python/getversion.c
@@ -9,7 +9,7 @@
 Py_GetVersion(void)
 {
 	static char version[250];
-	sprintf(version, "%.80s (%.80s) %.80s", PY_VERSION,
-		Py_GetBuildInfo(), Py_GetCompiler());
+	PyOS_snprintf(version, sizeof(version), "%.80s (%.80s) %.80s", 
+		      PY_VERSION, Py_GetBuildInfo(), Py_GetCompiler());
 	return version;
 }
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index f6217c3..628058b 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -933,7 +933,7 @@
 				else
 					PyFile_WriteString(filename, f);
 				PyFile_WriteString("\", line ", f);
-				sprintf(buf, "%d", lineno);
+				PyOS_snprintf(buf, sizeof(buf), "%d", lineno);
 				PyFile_WriteString(buf, f);
 				PyFile_WriteString("\n", f);
 				if (text != NULL)
diff --git a/Python/strerror.c b/Python/strerror.c
index b803b29..aeb7dd5 100644
--- a/Python/strerror.c
+++ b/Python/strerror.c
@@ -3,6 +3,7 @@
    Author: Guido van Rossum, CWI Amsterdam, Oct. 1990, <guido@cwi.nl>. */
 
 #include <stdio.h>
+#include "Python.h"
 
 extern int sys_nerr;
 extern char *sys_errlist[];
@@ -13,7 +14,7 @@
 	static char buf[20];
 	if (err >= 0 && err < sys_nerr)
 		return sys_errlist[err];
-	sprintf(buf, "Unknown errno %d", err);
+	PyOS_snprintf(buf, sizeof(buf), "Unknown errno %d", err);
 	return buf;
 }
 
diff --git a/Python/traceback.c b/Python/traceback.c
index 6abde64..fee9d12 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -195,7 +195,7 @@
 			}
 		}
 	}
-	sprintf(linebuf, FMT, filename, lineno, name);
+	PyOS_snprintf(linebuf, sizeof(linebuf), FMT, filename, lineno, name);
 	err = PyFile_WriteString(linebuf, f);
 	if (xfp == NULL || err != 0)
 		return err;
diff --git a/RISCOS/Python/dynload_riscos.c b/RISCOS/Python/dynload_riscos.c
index 6965647..6b87f2d 100644
--- a/RISCOS/Python/dynload_riscos.c
+++ b/RISCOS/Python/dynload_riscos.c
@@ -55,10 +55,9 @@
 	void (*init_function)(void);
 
 	err = dlk_load_no_init(pathname, &init_function);
-	if (err)
-	{
-	  sprintf(errstr, "dlk failure %d", err);
-	  PyErr_SetString(PyExc_ImportError, errstr);
+	if (err) {
+	    PyOS_snprintf(errstr, sizeof(errstr), "dlk failure %d", err);
+	    PyErr_SetString(PyExc_ImportError, errstr);
 	}
 	return init_function;
 }