     /// - parameter callback: The closure to invoke whenever the signal fires.
     public func listenPastOnce(listener: AnyObject, callback: (T) -> Void) -> SignalListener<T> {
         let signalListener = self.listen(listener, callback: callback)
-        if let lastDataFired = lastDataFired where fireCount > 0 {
+        if let lastDataFired = lastDataFired {
             signalListener.callback(lastDataFired)
             signalListener.cancel()
         } else {

    
    /// Clears the last fired data from the Signal and resets the fire count
    public func clearLastData() {
        fireCount = 0
        lastDataFired = nil
    }
}

    /// - parameter callback: The closure to invoke whenever the signal fires.
    public func listenPast(listener: AnyObject, callback: (T) -> Void) -> SignalListener<T> {
        let signalListener = self.listen(listener, callback: callback)
        if let lastDataFired = lastDataFired {
            signalListener.callback(lastDataFired)
        }
        return signalListener
