diff --git a/libretro-common/glsm/glsm.c b/libretro-common/glsm/glsm.c
index 3e4767df07..80c9df410e 100644
--- a/libretro-common/glsm/glsm.c
+++ b/libretro-common/glsm/glsm.c
@@ -1809,10 +1809,10 @@ void rglDeleteVertexArrays(GLsizei n, const GLuint *arrays)
  * OpenGL    : 3.2
  * OpenGLES  : 3.0
  */
-GLsync rglFenceSync(GLenum condition, GLbitfield flags)
+void *rglFenceSync(GLenum condition, GLbitfield flags)
 {
 #if defined(HAVE_OPENGL) || defined(HAVE_OPENGLES) && defined(HAVE_OPENGLES3)
-   return glFenceSync(condition, flags);
+   return (GLsync)glFenceSync(condition, flags);
 #endif
 }
 
@@ -1822,10 +1822,10 @@ GLsync rglFenceSync(GLenum condition, GLbitfield flags)
  * OpenGL    : 3.2
  * OpenGLES  : 3.0
  */
-void rglWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
+void rglWaitSync(void *sync, GLbitfield flags, GLuint64 timeout)
 {
 #if defined(HAVE_OPENGL) || defined(HAVE_OPENGLES) && defined(HAVE_OPENGLES3)
-   glWaitSync(sync, flags, timeout);
+   glWaitSync((GLsync)sync, flags, timeout);
 #endif
 }
 
diff --git a/libretro-common/include/glsm/glsmsym.h b/libretro-common/include/glsm/glsmsym.h
index b00908ba61..f261570717 100644
--- a/libretro-common/include/glsm/glsmsym.h
+++ b/libretro-common/include/glsm/glsmsym.h
@@ -393,8 +393,8 @@ void rglTexSubImage2D( 	GLenum target,
   	GLenum type,
   	const GLvoid * pixels);
 void rglDeleteVertexArrays(GLsizei n, const GLuint *arrays);
-GLsync rglFenceSync(GLenum condition, GLbitfield flags);
-void rglWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
+void *rglFenceSync(GLenum condition, GLbitfield flags);
+void rglWaitSync(void *data, GLbitfield flags, GLuint64 timeout);
 
 RETRO_END_DECLS