         return AnimationGroup(animations: [self] + animations)
     }
     
-    public func manual() -> Animation {
+    func postpone() {
         NSObject.cancelPreviousPerformRequestsWithTarget(
             self,
             selector: Selector("go"),
             object: nil
         )
-        return self
-    }
-        
+    }
+    
+    public func manual() -> Animation {
+        guard owner == nil else { return owner!.manual() }
+        postpone()
+        return self
+    }
+    
     func complete(finished: Bool) {
         self.finished = finished
         setPosition(delay + duration)

        }
        guard speed > 0.0 else { return reverse().go(speed: -speed) }
        _speed = speed
        manual()
        begin()
        return self
    }

            emit(.Completed)
        }
        _position = position
        if apply { postpone() }
    }
    
    weak var owner: Animation? {
        didSet {
            if owner != nil {
                ongoingAnimations.remove(self)
                postpone()
            }
        }
    }
