diff --git a/Objects/listobject.c b/Objects/listobject.c
index 09fba48..f54b97d 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -2098,7 +2098,8 @@
 listindex(PyListObject *self, PyObject *args)
 {
 	Py_ssize_t i, start=0, stop=Py_SIZE(self);
-	PyObject *v;
+	PyObject *v, *format_tuple, *err_string;
+	static PyObject *err_format = NULL;
 
 	if (!PyArg_ParseTuple(args, "O|O&O&:index", &v,
 	                            _PyEval_SliceIndex, &start,
@@ -2121,7 +2122,20 @@
 		else if (cmp < 0)
 			return NULL;
 	}
-	PyErr_SetString(PyExc_ValueError, "list.index(x): x not in list");
+	if (err_format == NULL) {
+		err_format = PyUnicode_FromString("%r is not in list");
+		if (err_format == NULL)
+			return NULL;
+	}
+	format_tuple = PyTuple_Pack(1, v);
+	if (format_tuple == NULL)
+		return NULL;
+	err_string = PyUnicode_Format(err_format, format_tuple);
+	Py_DECREF(format_tuple);
+	if (err_string == NULL)
+		return NULL;
+	PyErr_SetObject(PyExc_ValueError, err_string);
+	Py_DECREF(err_string);
 	return NULL;
 }
 
