diff --git a/api/GenApi.py b/api/GenApi.py
index 94d4649a3f21c890b6524f3ea8a353e4f596cf82..409a15fc9a3fcfbff9e03efa5249b1e6ad173eb7 100644
--- a/api/GenApi.py
+++ b/api/GenApi.py
@@ -758,8 +758,10 @@ def isizefun(name):
                     "            api_" + name + "_ = api_" + name +
                     "_type_(lambda dim, tag, x, y, z, _ : " + name + "(dim, tag, x, y, z))")
     a.python_arg = "api_" + name + "_, None"
-    a.julia_pre = ("api_" + name + "_ = @cfunction($" + name +
-                   ", Cdouble, (Cint, Cint, Cdouble, Cdouble, Cdouble))")
+    a.julia_pre = (
+        "api_" + name + "__(dim, tag, x, y, z, data) = " + name + "(dim, tag, x, y, z)\n    " +
+        "api_" + name + "_ = @cfunction($api_" + name + "__" +
+                   ", Cdouble, (Cint, Cint, Cdouble, Cdouble, Cdouble, Ptr{Cvoid}))")
     a.julia_arg = "api_" + name + "_, C_NULL"
     a.julia_ctype = "Ptr{Cvoid}, Ptr{Cvoid}"
     return a
diff --git a/api/gmsh.jl b/api/gmsh.jl
index 96148d4a82013062f139ac62c105b4aa82417615..f466696cfc1d1f4b5400a49aa03f0565632c0695 100644
--- a/api/gmsh.jl
+++ b/api/gmsh.jl
@@ -2205,7 +2205,8 @@ Set a global mesh size callback. The callback should take 5 arguments (`dim`,
 (`x`, `y`, `z`).
 """
 function setSizeCallback(callback)
-    api_callback_ = @cfunction($callback, Cdouble, (Cint, Cint, Cdouble, Cdouble, Cdouble))
+    api_callback__(dim, tag, x, y, z, data) = callback(dim, tag, x, y, z)
+    api_callback_ = @cfunction($api_callback__, Cdouble, (Cint, Cint, Cdouble, Cdouble, Cdouble, Ptr{Cvoid}))
     ierr = Ref{Cint}()
     ccall((:gmshModelMeshSetSizeCallback, gmsh.lib), Cvoid,
           (Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cint}),