diff --git a/noblogsmv/test/test_state.py b/noblogsmv/test/test_state.py
index 1cbec1259a1e1926c62f796714bdc126f786ddc7..79e472f29f2679bd4e02ee811ea2ef402dc0a7e2 100644
--- a/noblogsmv/test/test_state.py
+++ b/noblogsmv/test/test_state.py
@@ -73,6 +73,30 @@ class DatabaseTest(TestBase):
         self.db.set(w)
         self.assertTrue(self.db.are_we_done())
 
+    def test_loadtest(self):
+        nkeys = 100
+        nloops = 100
+        out = {'errors': 0}
+
+        for i in xrange(nkeys):
+            self.db.put(state.WorkUnit('key%d' % i, state.STATE_INIT, {i: i}))
+        self.db.conn.commit()
+
+        def loadfn(i):
+            key = 'key%d' % i
+            for j in xrange(nloops):
+                try:
+                    with state.work_transaction(self.db, key) as work:
+                        work.state = state.STATE_DONE
+                except Exception, e:
+                    out['errors'] += 1
+                    print e
+
+        threads = [threading.Thread(target=loadfn, args=(i,)) for i in xrange(nkeys)]
+        [x.start() for x in threads]
+        [x.join() for x in threads]
+        self.assertEquals(0, out['errors'])
+
 
 def _mk_state_machine(_states):
     class _MySM(state.StateMachine):