         for refWatch in refsToWatch {
             if let ref: AnyObject = refWatch.ref {
                 if (hasRefLikelyLeaked(refWatch)) {
-                    alertThatRefHasLeaked(ref, name: refWatch.name)
-                    removeRefs.append(refWatch)
+                    refWatch.failedChecks++
+                    if (refWatch.failedChecks > 1) {
+                        // To prevent pausing in the debugger from throwing a false positive we make it fail the check twice
+                        alertThatRefHasLeaked(ref, name: refWatch.name)
+                        removeRefs.append(refWatch)
+                    }
+                } else {
+                    refWatch.failedChecks = 0
                 }
             } else {
                 removeRefs.append(refWatch)

    private static let sharedInstance = LeakInspector()
    private var refsToWatch = [RefWatch]()
    private let simulator = TARGET_IPHONE_SIMULATOR == 1

    private init() {
        if simulator {

    }

    private func hasRefLikelyLeaked(refWatch: RefWatch) -> Bool {
        var hasRefLikelyLeaked = false
        if (abs(refWatch.date.timeIntervalSinceNow) > frequency) {
            if let controller = refWatch.ref as? UIViewController {
                if (controller.parentViewController == nil && controller.navigationController == nil) {
                    hasRefLikelyLeaked = true;
                } else {
                    refWatch.date = NSDate().dateByAddingTimeInterval(frequency)
                }
            } else {
                hasRefLikelyLeaked = true
