diff --git a/Lib/test/ieee754.txt b/Lib/test/ieee754.txt
index 5a41c8f..a07906c 100644
--- a/Lib/test/ieee754.txt
+++ b/Lib/test/ieee754.txt
@@ -127,31 +127,31 @@
 >>> sin(INF)
 Traceback (most recent call last):
 ...
-ValueError: math domain error
+ValueError: math domain error (invalid argument)
 >>> sin(NINF)
 Traceback (most recent call last):
 ...
-ValueError: math domain error
+ValueError: math domain error (invalid argument)
 >>> sin(NAN)
 nan
 >>> cos(INF)
 Traceback (most recent call last):
 ...
-ValueError: math domain error
+ValueError: math domain error (invalid argument)
 >>> cos(NINF)
 Traceback (most recent call last):
 ...
-ValueError: math domain error
+ValueError: math domain error (invalid argument)
 >>> cos(NAN)
 nan
 >>> tan(INF)
 Traceback (most recent call last):
 ...
-ValueError: math domain error
+ValueError: math domain error (invalid argument)
 >>> tan(NINF)
 Traceback (most recent call last):
 ...
-ValueError: math domain error
+ValueError: math domain error (invalid argument)
 >>> tan(NAN)
 nan
 
@@ -169,11 +169,11 @@
 >>> asin(INF), asin(NINF)
 Traceback (most recent call last):
 ...
-ValueError: math domain error
+ValueError: math domain error (invalid argument)
 >>> acos(INF), acos(NINF)
 Traceback (most recent call last):
 ...
-ValueError: math domain error
+ValueError: math domain error (invalid argument)
 >>> equal(atan(INF), PI/2), equal(atan(NINF), -PI/2)
 (True, True)
 
diff --git a/Lib/test/test_math.py b/Lib/test/test_math.py
index da8a0e9..379ff89 100644
--- a/Lib/test/test_math.py
+++ b/Lib/test/test_math.py
@@ -741,9 +741,9 @@
             func = getattr(math, fn)
             try:
                 result = func(ar)
-            except ValueError:
-                message = ("Unexpected ValueError in " +
-                           "test %s:%s(%r)\n" % (id, fn, ar))
+            except ValueError as exc:
+                message = (("Unexpected ValueError: %s\n        " +
+                           "in test %s:%s(%r)\n") % (exc.args[0], id, fn, ar))
                 self.fail(message)
             self.ftest("%s:%s(%r)" % (id, fn, ar), result, er)
 
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index 3cf1133..aa38691 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -174,18 +174,21 @@
 	PyFPE_START_PROTECT("in math_1", return 0);
 	r = (*func)(x);
 	PyFPE_END_PROTECT(r);
-	if (Py_IS_NAN(r)) {
-		if (!Py_IS_NAN(x))
-			errno = EDOM;
-		else
-			errno = 0;
+	if (Py_IS_NAN(r) && !Py_IS_NAN(x)) {
+		PyErr_SetString(PyExc_ValueError,
+				"math domain error (invalid argument)");
+		return NULL;
 	}
-	else if (Py_IS_INFINITY(r)) {
-		if (Py_IS_FINITE(x))
-			errno = can_overflow ? ERANGE : EDOM;
-		else
-			errno = 0;
+	if (Py_IS_INFINITY(r) && Py_IS_FINITE(x)) {
+			if (can_overflow)
+				PyErr_SetString(PyExc_OverflowError,
+					"math range error (overflow)");
+			else
+				PyErr_SetString(PyExc_ValueError,
+					"math domain error (singularity)");
+			return NULL;
 	}
+	/* on most machines, errno should be 0 at this point */
 	if (errno && is_error(r))
 		return NULL;
 	else
