diff --git a/Modules/mpzmodule.c b/Modules/mpzmodule.c
index 5ff0801..d0b9d7f 100644
--- a/Modules/mpzmodule.c
+++ b/Modules/mpzmodule.c
@@ -993,7 +993,9 @@
 	err_setstr(TypeError, "number coercion (to mpzobject) failed");
 	return NULL;
 } /* mpz_mpzcoerce() */
-	
+
+static void mpz_divm();
+
 static object *
 MPZ_powm(self, args)
 	object *self;
@@ -1181,7 +1183,7 @@
 } /* MPZ_sqrtrem() */
 
 
-void
+static void
 #if __STDC__
 mpz_divm(MP_INT *res, const MP_INT *num, const MP_INT *den, const MP_INT *mod)
 #else
@@ -1544,7 +1546,7 @@
 	{"hex",			mpz_hex},
 	{"oct",			mpz_oct},
 #endif /* def MPZ_CONVERSIONS_AS_METHODS */
-	{"binary",		mpz_binary},
+	{"binary", (object * (*) (object *, object *)) mpz_binary},
 	{NULL,			NULL}		/* sentinel */
 };
 
@@ -1639,11 +1641,11 @@
 	sizeof(mpzobject),	/*tp_size*/
 	0,			/*tp_itemsize*/
 	/* methods */
-	mpz_dealloc,	/*tp_dealloc*/
+	(void (*) (object *)) mpz_dealloc,	/*tp_dealloc*/
 	0,		/*tp_print*/
-	mpz_getattr,	/*tp_getattr*/
+	(object * (*)(object *, char *)) mpz_getattr,	/*tp_getattr*/
 	0,		/*tp_setattr*/
-	mpz_compare,	/*tp_compare*/
+	(int (*) (object *, object *))  mpz_compare,	/*tp_compare*/
 	mpz_repr,	/*tp_repr*/
         &mpz_as_number, /*tp_as_number*/
 };
diff --git a/Python/ceval.c b/Python/ceval.c
index 425e2a0..6ffbb46 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1710,7 +1710,6 @@
 {
 	object *v = tb_fetch();
 	if (v != NULL) {
-		writestring("Stack backtrace (innermost last):\n", f);
 		tb_print(v, f);
 		DECREF(v);
 	}
diff --git a/Python/traceback.c b/Python/traceback.c
index 6ed1917..f14f0ec 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -219,14 +219,23 @@
 }
 
 static void
-tb_printinternal(tb, f)
+tb_printinternal(tb, f, limit)
 	tracebackobject *tb;
 	object *f;
+	int limit;
 {
+	int depth = 0;
+	tracebackobject *tb1 = tb;
+	while (tb1 != NULL) {
+		depth++;
+		tb1 = tb1->tb_next;
+	}
 	while (tb != NULL && !intrcheck()) {
-		tb_displayline(f,
-		     getstringvalue(tb->tb_frame->f_code->co_filename),
-							tb->tb_lineno);
+		if (depth <= limit)
+			tb_displayline(f,
+			    getstringvalue(tb->tb_frame->f_code->co_filename),
+			    tb->tb_lineno);
+		depth--;
 		tb = tb->tb_next;
 	}
 }
@@ -236,6 +245,8 @@
 	object *v;
 	object *f;
 {
+	object *limitv;
+	int limit = 1000;
 	if (v == NULL)
 		return 0;
 	if (!is_tracebackobject(v)) {
@@ -243,6 +254,13 @@
 		return -1;
 	}
 	sysset("last_traceback", v);
-	tb_printinternal((tracebackobject *)v, f);
+	limitv = sysget("tracebacklimit");
+	if (limitv && is_intobject(limitv)) {
+		limit = getintvalue(limitv);
+		if (limit <= 0)
+			return 0;
+	}
+	writestring("Traceback (innermost last):\n", f);
+	tb_printinternal((tracebackobject *)v, f, limit);
 	return 0;
 }
