txc->removed_collections.pop_front();
   }
 
-  _op_queue_release_deferred_throttle(txc);
-
   OpSequencerRef osr = txc->osr;
   {
     std::lock_guard<std::mutex> l(osr->qlock);
   std::lock_guard<std::mutex> l(kv_lock);
   txc->state = TransContext::STATE_DEFERRED_CLEANUP;
   txc->osr->qcond.notify_all();
+  _op_queue_release_deferred_throttle(txc);
   deferred_cleanup_queue.push_back(txc);
   kv_cond.notify_one();
   return 0;
     handle->suspend_tp_timeout();
 
   _op_queue_reserve_throttle(txc);
-  _op_queue_reserve_deferred_throttle(txc);
+  if (txc->deferred_txn)
+    _op_queue_reserve_deferred_throttle(txc);
 
   if (handle)
     handle->reset_tp_timeout();