                     var newSet = scope.indexSet
                     indexSet -= newSet
                     deletions += NSIndexSetDelta(oldSet, newSet).deletions
-                    println("Deletions: \(deletions)")
                 }
             } else {
                 scope.perform(attributedString, parentIndexSet: indexSet)

                attributedString.addAttribute(NSForegroundColorAttributeName, value: color, range: range)
                })
        }
        
        // Create a copy of the indexSet and call perform to subscopes
        // The results of the subscope is removed from the indexSet copy before the next subscope is performed
        let indexSetCopy = parentIndexSet.mutableCopy() as NSMutableIndexSet

    // Will change indexSet
    func performSubscopes(attributedString: NSMutableAttributedString, indexSet: NSMutableIndexSet) {
        
        // If a subscope is "lazy" (has a set editedIndexSet), we must check sibling scopes for deletions.
        // If "*/" is removed, the comment token will not match, and we see that some indexes where deleted for that token.
        // Then we just tell the "lazy" scope to perform in those indexes
        
        var deletions = NSMutableIndexSet()
        for (index, scope) in enumerate(subscopes) {
            scope.colorDictionary = colorDictionary
            if containsSubscopeWithEditedIndexSet {
                if let editedIndexSet = scope.editedIndexSet {
                    let set = indexSet.intersectionWithSet(editedIndexSet) + deletions
                    scope.perform(attributedString, parentIndexSet: set)
                    indexSet -= scope.indexSet
                } else {
