anchor.diff:      _sortableSubs.add(onDrop.listen((DropzoneEvent event) {
         _logger.finest('drop');
         if (_currentPlaceholder != null) {
  -        _currentPlaceholder.hidePlaceholder(dropped: true);
  +        // Just set dropped to true and let dragEnd handle it.
  +        _dropped = true;
         }
       }));
     }
     
  -  void _listenToDragEnd() {
  +  void _listenToDragEnd(DraggableGroup group) {
       // Clean up on dragEnd.
  -    _sortableSubs.add(onDragEnd.listen((_) {
  +    _sortableSubs.add(group.onDragEnd.listen((_) {
         _logger.finest('dragEnd');
  -      
  -      // Hide currently shown placeholder.
  -      if (_currentPlaceholder != null) {
  -        _currentPlaceholder.hidePlaceholder(dropped: false);
  -      }
         
         // Cancel subscriptions.
         _sortableSubs.forEach((StreamSubscription s) => s.cancel());
         _sortableSubs.clear();
  +      
  +      // Hide placeholder if one is currently shown.
  +      if (_currentPlaceholder != null) {
  +        _currentPlaceholder.hidePlaceholder(dropped: _dropped);
  +      }
  +      
  +      // Reset dropped.
  +      _dropped = false;
       }));
     }
     
  
positive.code: 
  /// The currently shown placeholder. 
  _Placeholder _currentPlaceholder;
  
  /**
   * Manages a group of sortables and their options and event listeners.
  
negative.code:   
    /**
     * Hides the placeholder and shows the draggable.
     * If [dropped] is true, the draggable is shown at the [_currentPosition]. 
     * If false, it is shown at the [_originalPosition].
     */
    void hidePlaceholder({bool dropped: false}) {
      // Remove placeholder element from DOM.
  