      */
     public subscript(safeSectionIndex sectionIndex: Int, safeItemIndex itemIndex: Int) -> T? {
         
-        CoreStore.assert(
-            !self.isPendingRefetch || NSThread.isMainThread(),
-            "Attempted to access a \(typeName(self)) outside the main thread while a refetch is in progress."
-        )
-        
-        guard let sections = self.fetchedResultsController.sections
-            where sectionIndex < sections.count else {
-                
-                return nil
+        guard let section = self.sectionInfoAtIndex(safeSectionIndex: sectionIndex) else {
+            
+            return nil
         }
-        
-        let section = sections[sectionIndex]
-        guard itemIndex < section.numberOfObjects else {
+        guard itemIndex >= 0 && itemIndex < section.numberOfObjects else {
             
             return nil
         }

            !self.isPendingRefetch || NSThread.isMainThread(),
            "Attempted to access a \(typeName(self)) outside the main thread while a refetch is in progress."
        )
        
        return self.fetchedResultsController.indexPathForObject(object)
    }
    

            !self.isPendingRefetch || NSThread.isMainThread(),
            "Attempted to access a \(typeName(self)) outside the main thread while a refetch is in progress."
        )
        return (self.fetchedResultsController.fetchedObjects as? [T]) ?? []
    }
    
