         });
         
         // Tracking bounds tracks whether or not we need a tracking rectangle and whether or not it's active
-        let trackingBounds = Binding.computed({ () -> (NSRect, NeedsTracking) in
+        let trackingBounds = Binding.computed({ [unowned self] () -> (NSRect, NeedsTracking) in
             let boundsValue = bounds.value as! NSValue;
             let boundsRect  = boundsValue.rectValue;
             return (boundsRect, needsTracking.value);

        // Add or remove a tracking rectangle if needsTracking changes or the size of the view changes
        var tracking: NSTrackingArea?;
        
        _trackingObserverLifetime = trackingBounds.observe({ (bounds, needsTracking) in
            switch needsTracking {
            case NeedsTracking.KeepTracking: break;
                

    }
    override public func mouseExited(theEvent: NSEvent)         { if mouseOver.value { mouseOver.value = false; } }
    
    ///
    /// Sets up the observers for this view
    ///
