This crash happens when an instance gets released before all key value observers pointing to its properties release. You need to call
removeObserver:forKeyPath: before releasing the instance.
In another scenario, it will crash if you call
removeObserver:forKeyPath: on an instance if none of the key value observers are pointing to its properties.