diff --git a/Misc/NEWS b/Misc/NEWS
index aeee3f8..b9ce278 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,12 @@
 Core and builtins
 -----------------
 
+- Issue #1686386: Tuple's tp_repr did not take into account the possibility of
+  having a self-referential tuple, which is possible from C code.  Nor did
+  object's tp_str consider that a type's tp_str could do something that could
+  lead to an inifinite recursion.  Py_ReprEnter() and Py_EnterRecursiveCall(),
+  respectively, fixed the issues.  (Backport of r58288 from trunk.)
+
 - Patch #1442: properly report exceptions when the PYTHONSTARTUP file
   cannot be executed.
 
diff --git a/Objects/object.c b/Objects/object.c
index 71e5641..af7be01 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -403,7 +403,12 @@
 	if (v->ob_type->tp_str == NULL)
 		return PyObject_Repr(v);
 
+	/* It is possible for a type to have a tp_str representation that loops
+	   infinitely. */
+	if (Py_EnterRecursiveCall(" while getting the str of an object"))
+		return NULL;
 	res = (*v->ob_type->tp_str)(v);
+	Py_LeaveRecursiveCall();
 	if (res == NULL)
 		return NULL;
 	type_ok = PyString_Check(res);
@@ -2141,4 +2146,3 @@
 #ifdef __cplusplus
 }
 #endif
-
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index 6f3711f..56a1024 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -208,6 +208,15 @@
 	PyObject *s, *temp;
 	PyObject *pieces, *result = NULL;
 
+	/* While not mutable, it is still possible to end up with a cycle in a
+	   tuple through an object that stores itself within a tuple (and thus
+	   infinitely asks for the repr of itself). This should only be
+	   possible within a type. */
+	i = Py_ReprEnter((PyObject *)v);
+	if (i != 0) {
+		return i > 0 ? PyString_FromString("(...)") : NULL;
+	}
+
 	n = v->ob_size;
 	if (n == 0)
 		return PyString_FromString("()");
@@ -218,7 +227,10 @@
 
 	/* Do repr() on each element. */
 	for (i = 0; i < n; ++i) {
+		if (Py_EnterRecursiveCall(" while getting the repr of a tuple"))
+			goto Done;
 		s = PyObject_Repr(v->ob_item[i]);
+		Py_LeaveRecursiveCall();
 		if (s == NULL)
 			goto Done;
 		PyTuple_SET_ITEM(pieces, i, s);
@@ -253,6 +265,7 @@
 
 Done:
 	Py_DECREF(pieces);
+	Py_ReprLeave((PyObject *)v);
 	return result;
 }
 
