Index: trunk/ui/ui.sortable.js
===================================================================
--- trunk/ui/ui.sortable.js	(revision 3002)
+++ trunk/ui/ui.sortable.js	(working copy)
@@ -248,30 +248,29 @@
 		if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';
 
 		//Rearrange
+		var innermostIndex = null, innermostElement = null, innermostIntersection = false;
 		for (var i = this.items.length - 1; i >= 0; i--) {
-
-			//Cache variables and intersection, continue if no intersection
 			var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item);
 			if (!intersection) continue;
-
 			if(itemElement != this.currentItem[0] //cannot intersect with itself
 				&&	this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before
 				&&	!$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked
 				&& (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true)
-				//&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container
-			) {
+				&& (!innermostElement || $.ui.contains(innermostElement, itemElement)) // this item is more "inner" then the current innermostItem
+			) { // record the new innermostItem
+				innermostIndex = i;
+				innermostElement = itemElement;
+				innermostIntersection = intersection;
+			}
+		}
+		if(innermostIntersection){ // do the rearrangement
+				var item = this.items[innermostIndex];
+				this.direction = innermostIntersection == 1 ? "down" : "up";
 
-				this.direction = intersection == 1 ? "down" : "up";
-
 				if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) {
 					this._rearrange(event, item);
-				} else {
-					break;
+					this._trigger("change", event, this._uiHash());
 				}
-
-				this._trigger("change", event, this._uiHash());
-				break;
-			}
 		}
 
 		//Post events to containers

