diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp index d491c42b04..197cacdb3c 100644 --- a/src/mac/carbon/utils.cpp +++ b/src/mac/carbon/utils.cpp @@ -867,7 +867,10 @@ void wxMacControl::Dispose() wxASSERT_MSG( IsValidControlHandle(m_controlRef) , wxT("Invalid Control Handle (maybe already released) in Dispose") ); // we cannot check the ref count here anymore, as autorelease objects might delete their refs later - CFRelease(m_controlRef); + // we can have situations when being embedded, where the control gets deleted behind our back, so only + // CFRelease if we are safe + if ( IsValidControlHandle(m_controlRef) ) + CFRelease(m_controlRef); m_controlRef = NULL; }