     
     @IBOutlet open override var imageView: UIImageView? {
         get {
-            return overridingImageView ?? super.imageView
-        }
-        set {
-            overridingImageView = newValue
+            return activeView(overridingView: overridingImageView,
+                              inheritedView: super.imageView)
+                as? UIImageView
+        }
+        set {
+            if overridingImageView == nil {
+                overridingImageView = newValue
+            }
         }
     }
     

        get {
            return overridingDetailTextLabel ?? super.detailTextLabel
            // TODO: Make this work:
//            return activeLabel(overridingLabel: overridingDetailTextLabel,
//                               superLabel: super.detailTextLabel)
        }
        set {
            if overridingDetailTextLabel == nil {

    
    @IBOutlet open override var textLabel: UILabel? {
        get {
            return activeView(overridingView: overridingTextLabel,
                              inheritedView: super.textLabel)
                as? UILabel
        }
        set {
            if overridingTextLabel == nil {
