         tagView.removeFromSuperview()
         let index: Int = self._tagViews.indexOf(tagView)!
         self._tagViews.removeAtIndex(index)
-        self._rearrangeTagViewsStartingFromIndex(index)
+        self._rearrangeTagViewsStartingFromIndex(index, animated: true)
         
         self._updateScrollViewContentHeight()
     }

        }
    }
    
    private func _rearrangeTagViewsStartingFromIndex(index: Int) {
        let tagViews: [TagView] = Array(self._tagViews.suffixFrom(index))
        for tagView in tagViews {
            let newOrigin: CGPoint = self._originForTagView(tagView)
            if newOrigin != tagView.origin {
                tagView.origin = newOrigin
            }
        }

extension TagsView {
    public override func layoutSubviews() {
        self._scrollView.size = self.size
        self._rearrangeTagViewsStartingFromIndex(0, animated: false)
        self._updateScrollViewContentHeight()
    }
}
