     func stopAnimating() {
         activityIndicatorView.stopAnimating()
         state = .Stopped
+        if !wasTriggeredByUser {
+            scrollView?.setContentOffset(CGPoint(x: scrollView!.contentOffset.x, y: -originalTopInset), animated: true)
+        }
     }
     
     private func resetScrollViewContentInset() {

        super.willMoveToSuperview(newSuperview)
        if superview != nil && newSuperview == nil {
            let scrollView = self.superview as! UIScrollView
            if scrollView.showPullToRefresh && isObserving {
                scrollView.removeObserver(self, forKeyPath: "contentOffset")
                scrollView.removeObserver(self, forKeyPath: "contentSize")
                scrollView.removeObserver(self, forKeyPath: "frame")

        view.originalTopInset = contentInset.top
        addSubview(view)
        pullToRefreshView = view
        enablePullToRefresh = true
    }
    
    func triggerPullToRefresh() {
