diff --git a/dlls/winemac.drv/cocoa_opengl.m b/dlls/winemac.drv/cocoa_opengl.m
index 4694dfdc81bfa32b6f554309da51c836d847b45c..e1aca7784c12b3ca7af91b3af592b70b525aec11 100644
--- a/dlls/winemac.drv/cocoa_opengl.m
+++ b/dlls/winemac.drv/cocoa_opengl.m
@@ -227,17 +227,17 @@ void macdrv_make_context_current(macdrv_opengl_context c, macdrv_view v)
     {
         WineOpenGLContext* currentContext = (WineOpenGLContext*)[WineOpenGLContext currentContext];
 
-        if ([currentContext isKindOfClass:[WineOpenGLContext class]])
-        {
-            [WineOpenGLContext clearCurrentContext];
-            if (currentContext != context)
-                [currentContext removeFromViews:YES];
-        }
+        [context removeFromViews:YES];
 
-        if (context)
+        if (currentContext != context)
         {
-            [context removeFromViews:YES];
-            [context makeCurrentContext];
+            if (context)
+                [context makeCurrentContext];
+            else
+                [WineOpenGLContext clearCurrentContext];
+
+            if ([currentContext isKindOfClass:[WineOpenGLContext class]])
+                [currentContext removeFromViews:YES];
         }
     }