diff --git a/lib/nvmf/subsystem.c b/lib/nvmf/subsystem.c
index 873b639b8..a97e3413b 100644
--- a/lib/nvmf/subsystem.c
+++ b/lib/nvmf/subsystem.c
@@ -539,6 +539,11 @@ nvmf_subsystem_set_state(struct spdk_nvmf_subsystem *subsystem,
 		    state == SPDK_NVMF_SUBSYSTEM_PAUSING) {
 			expected_old_state = SPDK_NVMF_SUBSYSTEM_RESUMING;
 		}
+		/* This is for the case when stopping paused subsystem */
+		if (actual_old_state == SPDK_NVMF_SUBSYSTEM_PAUSED &&
+		    state == SPDK_NVMF_SUBSYSTEM_DEACTIVATING) {
+			expected_old_state = SPDK_NVMF_SUBSYSTEM_PAUSED;
+		}
 		actual_old_state = expected_old_state;
 		__atomic_compare_exchange_n(&subsystem->state, &actual_old_state, state, false,
 					    __ATOMIC_RELAXED, __ATOMIC_RELAXED);