diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index 7b2bdf2..f6e7286 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -35,35 +35,6 @@
 
 #include <math.h>
 
-static int
-getdoublearg(args, px)
-	register object *args;
-	double *px;
-{
-	if (args == NULL)
-		return err_badarg();
-	if (is_floatobject(args)) {
-		*px = getfloatvalue(args);
-		return 1;
-	}
-	if (is_intobject(args)) {
-		*px = getintvalue(args);
-		return 1;
-	}
-	return err_badarg();
-}
-
-static int
-get2doublearg(args, px, py)
-	register object *args;
-	double *px, *py;
-{
-	if (args == NULL || !is_tupleobject(args) || gettuplesize(args) != 2)
-		return err_badarg();
-	return getdoublearg(gettupleitem(args, 0), px) &&
-		getdoublearg(gettupleitem(args, 1), py);
-}
-
 static object *
 math_1(args, func)
 	object *args;
