diff --git a/src/solver/modwrap.c b/src/solver/modwrap.c
index a180dba649632c3d9c8d7e812a4bac3a60177d2d..124d4bc4b7b3b313f34deb223afc6267451bf974 100644
--- a/src/solver/modwrap.c
+++ b/src/solver/modwrap.c
@@ -18,6 +18,6 @@ char *solve_equation(const char *eq)
solve_equation_closure = caml_named_value("solve_equation");
}
- value v = copy_string(eq);
- return strdup(String_val(callback(*solve_equation_closure, v)));
+ value v = caml_copy_string(eq);
+ return strdup(String_val(caml_callback(*solve_equation_closure, v)));
}