diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py
index 78909dd..48077fb 100644
--- a/Lib/test/test_random.py
+++ b/Lib/test/test_random.py
@@ -423,6 +423,7 @@
         self.assertRaises(ValueError, self.gen.setstate, (1, None, None))
 
     def test_setstate_middle_arg(self):
+        start_state = self.gen.getstate()
         # Wrong type, s/b tuple
         self.assertRaises(TypeError, self.gen.setstate, (2, None, None))
         # Wrong length, s/b 625
@@ -436,6 +437,10 @@
             self.gen.setstate((2, (1,)*624+(625,), None))
         with self.assertRaises((ValueError, OverflowError)):
             self.gen.setstate((2, (1,)*624+(-1,), None))
+        # Failed calls to setstate() should not have changed the state.
+        bits100 = self.gen.getrandbits(100)
+        self.gen.setstate(start_state)
+        self.assertEqual(self.gen.getrandbits(100), bits100)
 
         # Little trick to make "tuple(x % (2**32) for x in internalstate)"
         # raise ValueError. I cannot think of a simple way to achieve this, so
diff --git a/Misc/ACKS b/Misc/ACKS
index d4f20c5..ab41431 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1110,6 +1110,7 @@
 Pascal Oberndoerfer
 Jeffrey Ollie
 Adam Olsen
+Bryan Olson
 Grant Olson
 Koray Oner
 Piet van Oostrum
diff --git a/Misc/NEWS b/Misc/NEWS
index fe1b0f8..72fcded 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -317,6 +317,9 @@
 Library
 -------
 
+- bpo-29960: Preserve generator state when _random.Random.setstate()
+  raises an exception.  Patch by Bryan Olson.
+
 - bpo-29802: Fixed reference counting in module-level struct functions when
   pass arguments of wrong type.
 
diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c
index 6db1d2d..9953654 100644
--- a/Modules/_randommodule.c
+++ b/Modules/_randommodule.c
@@ -348,6 +348,7 @@
     int i;
     unsigned long element;
     long index;
+    uint32_t new_state[N];
 
     if (!PyTuple_Check(state)) {
         PyErr_SetString(PyExc_TypeError,
@@ -364,7 +365,7 @@
         element = PyLong_AsUnsignedLong(PyTuple_GET_ITEM(state, i));
         if (element == (unsigned long)-1 && PyErr_Occurred())
             return NULL;
-        self->state[i] = (uint32_t)element;
+        new_state[i] = (uint32_t)element;
     }
 
     index = PyLong_AsLong(PyTuple_GET_ITEM(state, i));
@@ -375,6 +376,8 @@
         return NULL;
     }
     self->index = (int)index;
+    for (i = 0; i < N; i++)
+        self->state[i] = new_state[i];
 
     Py_RETURN_NONE;
 }
