diff --git a/Include/object.h b/Include/object.h
index 5a93000..750cd80 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -162,7 +162,7 @@
 	/* Methods to implement standard operations */
 	
 	void (*tp_dealloc) FPROTO((object *));
-	void (*tp_print) FPROTO((object *, FILE *, int));
+	int (*tp_print) FPROTO((object *, FILE *, int));
 	object *(*tp_getattr) FPROTO((object *, char *));
 	int (*tp_setattr) FPROTO((object *, char *, object *));
 	int (*tp_compare) FPROTO((object *, object *));
@@ -180,7 +180,7 @@
 #define is_typeobject(op) ((op)->ob_type == &Typetype)
 
 /* Generic operations on objects */
-extern void printobject PROTO((object *, FILE *, int));
+extern int printobject PROTO((object *, FILE *, int));
 extern object * reprobject PROTO((object *));
 extern int cmpobject PROTO((object *, object *));
 extern object *getattr PROTO((object *, char *));
diff --git a/Modules/stdwinmodule.c b/Modules/stdwinmodule.c
index 494b15e..9b436af 100644
--- a/Modules/stdwinmodule.c
+++ b/Modules/stdwinmodule.c
@@ -1286,13 +1286,14 @@
 	free((char *)wp);
 }
 
-static void
+static int
 window_print(wp, fp, flags)
 	windowobject *wp;
 	FILE *fp;
 	int flags;
 {
 	fprintf(fp, "<window titled '%s'>", getstringvalue(wp->w_title));
+	return 0;
 }
 
 static object *
diff --git a/Python/pythonmain.c b/Python/pythonmain.c
index b855520..9fa1a58 100644
--- a/Python/pythonmain.c
+++ b/Python/pythonmain.c
@@ -289,10 +289,12 @@
 	object *exception, *v;
 	err_get(&exception, &v);
 	fprintf(stderr, "Unhandled exception: ");
-	printobject(exception, stderr, PRINT_RAW);
+	if (printobject(exception, stderr, PRINT_RAW) != 0)
+		err_clear();
 	if (v != NULL && v != None) {
 		fprintf(stderr, ": ");
-		printobject(v, stderr, PRINT_RAW);
+		if (printobject(v, stderr, PRINT_RAW) != 0)
+			err_clear();
 	}
 	fprintf(stderr, "\n");
 	XDECREF(exception);
diff --git a/Python/traceback.c b/Python/traceback.c
index 0b6904f..e71f6fa 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -186,12 +186,14 @@
 	FILE *fp;
 {
 	while (tb != NULL) {
-		if (intrcheck()) {
-			fprintf(fp, "[interrupted]\n");
+		if (intrcheck())
+			break;
+		fprintf(fp, "  File \"");
+		if (printobject(tb->tb_frame->f_code->co_filename,
+				fp, PRINT_RAW) != 0) {
+			err_clear();
 			break;
 		}
-		fprintf(fp, "  File \"");
-		printobject(tb->tb_frame->f_code->co_filename, fp, PRINT_RAW);
 		fprintf(fp, "\", line %d\n", tb->tb_lineno);
 		tb_displayline(fp,
 		     getstringvalue(tb->tb_frame->f_code->co_filename),
