diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c
index 6dd07fa40d89d592c8322d621e5dacf80de7e3cb..c617245cab37debfe6d1acd927b417d1ef8d5c6d 100644
--- a/dlls/winex11.drv/opengl.c
+++ b/dlls/winex11.drv/opengl.c
@@ -1982,7 +1982,7 @@ static struct wgl_context *X11DRV_wglCreateContextAttribsARB( HDC hdc, struct wg
         }
 
         X11DRV_expect_error(gdi_display, GLXErrorHandler, NULL);
-        ret->ctx = create_glxcontext(gdi_display, ret, NULL);
+        ret->ctx = create_glxcontext(gdi_display, ret, hShareContext ? hShareContext->ctx : NULL);
         XSync(gdi_display, False);
         if ((err = X11DRV_check_error()) || !ret->ctx)
         {