diff --git a/src/videofilters/msosxdisplay.m b/src/videofilters/msosxdisplay.m
index d5ce74c818a784a13b17fbc0ea5c3e02502688ed..cd4312621d8f3a66ed6fa5b0b173a0861a1d261c 100644
--- a/src/videofilters/msosxdisplay.m
+++ b/src/videofilters/msosxdisplay.m
@@ -385,9 +385,7 @@ static void osx_gl_process(MSFilter* f) {
 static void osx_gl_uninit(MSFilter* f) {
 	OSXDisplay* thiz = (OSXDisplay*) f->data;
 	if (thiz != nil) {
-		NSAutoreleasePool *loopPool = [[NSAutoreleasePool alloc] init];
-		[thiz release];
-		[loopPool drain];
+	   [thiz performSelectorOnMainThread:@selector(release) withObject:nil waitUntilDone:FALSE];
 	}
 }