diff --git a/test/unit/common/test_utils.py b/test/unit/common/test_utils.py
index 103ee87739..bed869caa7 100644
--- a/test/unit/common/test_utils.py
+++ b/test/unit/common/test_utils.py
@@ -2245,13 +2245,14 @@ class UnsafeXrange(object):
         self.current = 0
         self.concurrent_calls = 0
         self.upper_bound = upper_bound
+        self.concurrent_call = False
 
     def __iter__(self):
         return self
 
     def next(self):
         if self.concurrent_calls > 0:
-            raise ValueError("concurrent access is bad, mmmkay? (%r)")
+            self.concurrent_call = True
 
         self.concurrent_calls += 1
         try:
@@ -2409,19 +2410,20 @@ class TestGreenthreadSafeIterator(unittest.TestCase):
         for _ in xrange(2):
             pile.spawn(self.increment, iterable)
 
-        try:
-            sorted([resp for resp in pile])
-            self.assertTrue(False, "test setup is insufficiently crazy")
-        except ValueError:
-            pass
+        sorted([resp for resp in pile])
+        self.assertTrue(
+            iterable.concurrent_call, 'test setup is insufficiently crazy')
 
     def test_access_is_serialized(self):
         pile = eventlet.GreenPile(2)
-        iterable = utils.GreenthreadSafeIterator(UnsafeXrange(10))
+        unsafe_iterable = UnsafeXrange(10)
+        iterable = utils.GreenthreadSafeIterator(unsafe_iterable)
         for _ in xrange(2):
             pile.spawn(self.increment, iterable)
         response = sorted(sum([resp for resp in pile], []))
         self.assertEquals(range(1, 11), response)
+        self.assertTrue(
+            not unsafe_iterable.concurrent_call, 'concurrent call occurred')
 
 
 class TestStatsdLoggingDelegation(unittest.TestCase):