diff --git a/cogl/winsys/cogl-winsys-glx.c b/cogl/winsys/cogl-winsys-glx.c
index f694448ee..c8c18c005 100644
--- a/cogl/winsys/cogl-winsys-glx.c
+++ b/cogl/winsys/cogl-winsys-glx.c
@@ -1308,15 +1308,6 @@ _cogl_winsys_onscreen_update_swap_throttled (CoglOnscreen *onscreen)
   _cogl_winsys_onscreen_bind (onscreen);
 }
 
-/* FIXME: we should distinguish renderer and context features */
-gboolean
-_cogl_winsys_has_feature (CoglWinsysFeature feature)
-{
-  _COGL_GET_CONTEXT (ctx, FALSE);
-
-  return COGL_FLAGS_GET (ctx->winsys_features, feature);
-}
-
 /* XXX: This is a particularly hacky _cogl_winsys interface... */
 XVisualInfo *
 _cogl_winsys_xlib_get_visual_info (void)
diff --git a/cogl/winsys/cogl-winsys.c b/cogl/winsys/cogl-winsys.c
index e59063a55..547ea5a59 100644
--- a/cogl/winsys/cogl-winsys.c
+++ b/cogl/winsys/cogl-winsys.c
@@ -27,6 +27,7 @@
 #endif
 
 #include "cogl.h"
+#include "cogl-context-private.h"
 
 GQuark
 _cogl_winsys_error_quark (void)
@@ -34,3 +35,11 @@ _cogl_winsys_error_quark (void)
   return g_quark_from_static_string ("cogl-winsys-error-quark");
 }
 
+/* FIXME: we should distinguish renderer and context features */
+gboolean
+_cogl_winsys_has_feature (CoglWinsysFeature feature)
+{
+  _COGL_GET_CONTEXT (ctx, FALSE);
+
+  return COGL_FLAGS_GET (ctx->winsys_features, feature);
+}