         
         for entry in removed
             {
-            debugLog(.Observers, [self, "removing observer whose owners are all gone:", entry.observer ?? "<observer deallocated>"])
+            debugLog(.Observers, [self, "removing observer whose owners are all gone:", entry])
             entry.observer?.stoppedObservingResource(self)
             }
         }


// MARK: - Internals

internal struct ObserverEntry
    {
    private let resource: Resource  // keeps resource around as long as it has observers
    

        {
        self.observerRef = StrongOrWeakRef<ResourceObserver>(observer)
        self.resource = resource
        originalObserverDescription = debugStr(observer)  // So we know what was deallocated if it gets logged
        }

    mutating func addOwner(owner: AnyObject)
