             IBLog.write("textLabel set", indent: 1)
             IBLog.write("newValue: \(newValue.shortDescription)")
             IBLog.write("isLoadingFromNib = \(isLoadingFromNib)")
-            if !isLoadingFromNib {
+            if isLoadingFromNib {
+                IBLog.write("nibTextLabel = newValue")
+                nibTextLabel = newValue
+            } else {
                 IBLog.write("overridingTextLabel = nibTextLabel")
                 overridingTextLabel = nibTextLabel
                 super.textLabel?.text = nil
-            } else {
-                IBLog.write("nibTextLabel = newValue")
-                nibTextLabel = newValue
             }
             IBLog.write("textLabel set, done", indent: -1)
         }

            IBLog.write("detailTextLabel set", indent: 1)
            IBLog.write("newValue: \(newValue.shortDescription)")
            IBLog.write("isLoadingFromNib = \(isLoadingFromNib)")
            if !isLoadingFromNib {
                IBLog.write("overridingDetailTextLabel = nibDetailTextLabel")
                overridingDetailTextLabel?.text = nil
                overridingDetailTextLabel = nibDetailTextLabel
            } else {
                IBLog.write("nibDetailTextLabel = newValue")
                nibDetailTextLabel = newValue
                // detailTextLabel must be not nil or else IBDesignable will stop with an error.

                nonNilLabel.backgroundColor = UIColor.red
                nonNilLabel.text = "non nil"
                overridingDetailTextLabel = nonNilLabel
            } else {
                IBLog.write("overridingDetailTextLabel = nibDetailTextLabel")
                overridingDetailTextLabel?.text = nil
                overridingDetailTextLabel = nibDetailTextLabel
            }
            IBLog.write("detailTextLabel set, done", indent: -1)
        }
