--- jsr166/src/jsr166y/LinkedTransferQueue.java 2009/10/28 10:23:38 1.58 +++ jsr166/src/jsr166y/LinkedTransferQueue.java 2009/10/29 00:29:16 1.59 @@ -821,8 +821,10 @@ public class LinkedTransferQueue exte break; } if (oldpred == pred || // Already saved - (oldpred == null && casCleanMe(null, pred))) - break; // Postpone cleaning + ((oldpred == null || oldpred.next == s) && + casCleanMe(oldpred, pred))) { + break; + } } } }