diff --git a/Source/GSSocketStream.m b/Source/GSSocketStream.m index 41be6d15b..64c334f00 100644 --- a/Source/GSSocketStream.m +++ b/Source/GSSocketStream.m @@ -647,6 +647,12 @@ static NSArray *keys = nil; { NSDebugMLLog(@"NSStream", @"GSTLSHandler completed on %p", stream); + + /* Make sure that, if ostream gets released as a result of + * the event we send to istream, it doesn't get deallocated + * and cause a crash when we try to send to it. + */ + AUTORELEASE(RETAIN(ostream)); if ([istream streamStatus] == NSStreamStatusOpen) { [istream _resetEvents: NSStreamEventOpenCompleted];