diff --git a/cumulus/pallets/xcmp-queue/src/lib.rs b/cumulus/pallets/xcmp-queue/src/lib.rs
index 13b05cde77ee60daeb3b6efcd06151c236d880e0..82b58e79ed408810a83baa56c709ba8246816032 100644
--- a/cumulus/pallets/xcmp-queue/src/lib.rs
+++ b/cumulus/pallets/xcmp-queue/src/lib.rs
@@ -457,7 +457,7 @@ impl<T: Config> Module<T> {
 		// send more, heavier messages.
 
 		let mut shuffle_index = 0;
-		while shuffle_index < shuffled.len() && max_weight.saturating_sub(weight_used) < threshold_weight {
+		while shuffle_index < shuffled.len() && max_weight.saturating_sub(weight_used) >= threshold_weight {
 			let index = shuffled[shuffle_index];
 			let sender = status[index].0;