diff --git a/Common/Gmsh.cpp b/Common/Gmsh.cpp
index 96193518afda5dd5776e5c4e4c82287afb0778d7..9620056c0323e7e06128f8ee676583c0f0d06399 100644
--- a/Common/Gmsh.cpp
+++ b/Common/Gmsh.cpp
@@ -320,7 +320,7 @@ int GmshBatch()
 
   // launch solver (if requested)
 #if defined(HAVE_ONELAB)
-  solver_batch_cb((void*)CTX::instance()->launchSolverAtStartup);
+  solver_batch_cb((void*)(intptr_t)CTX::instance()->launchSolverAtStartup);
 #endif
 
   time_t now;
@@ -397,7 +397,7 @@ int GmshFLTK(int argc, char **argv)
   }
 
   // launch solver (if requested) and fill onelab tree
-  solver_cb(0, (void*)CTX::instance()->launchSolverAtStartup);
+  solver_cb(0, (void*)(intptr_t)CTX::instance()->launchSolverAtStartup);
 
   // loop
   return FlGui::instance()->run();
diff --git a/Common/OpenFile.cpp b/Common/OpenFile.cpp
index 831c60639f6f19aa8a433bce77c294a6f306c564..c5488092272e8813645ffd2efc277ac6e6b84477 100644
--- a/Common/OpenFile.cpp
+++ b/Common/OpenFile.cpp
@@ -745,7 +745,7 @@ void OpenProjectMacFinder(const char *fileName)
     OpenProject(fileName);
     drawContext::global()->draw();
     if(CTX::instance()->launchSolverAtStartup >= 0)
-      solver_cb(0, (void*)CTX::instance()->launchSolverAtStartup);
+      solver_cb(0, (void*)(intptr_t)CTX::instance()->launchSolverAtStartup);
   }
 #endif
 }
diff --git a/Fltk/graphicWindow.cpp b/Fltk/graphicWindow.cpp
index 554e6f7adb14485ad51f657b996a1fdcbf3a974e..1c99e27db168a47181c89dc7804d6da90a104e8e 100644
--- a/Fltk/graphicWindow.cpp
+++ b/Fltk/graphicWindow.cpp
@@ -153,7 +153,7 @@ static void file_open_merge_cb(Fl_Widget *w, void *data)
     if(n != (int)PView::list.size())
       FlGui::instance()->openModule("Post-processing");
     if(CTX::instance()->launchSolverAtStartup >= 0)
-      solver_cb(0, (void*)CTX::instance()->launchSolverAtStartup);
+      solver_cb(0, (void*)(intptr_t)CTX::instance()->launchSolverAtStartup);
     else if(onelabUtils::haveSolverToRun())
       onelab_cb(0, (void*)"check");
     drawContext::global()->draw();
@@ -170,7 +170,7 @@ static void file_open_recent_cb(Fl_Widget *w, void *data)
   if(n != (int)PView::list.size())
     FlGui::instance()->openModule("Post-processing");
   if(CTX::instance()->launchSolverAtStartup >= 0)
-    solver_cb(0, (void*)CTX::instance()->launchSolverAtStartup);
+    solver_cb(0, (void*)(intptr_t)CTX::instance()->launchSolverAtStartup);
   else if(onelabUtils::haveSolverToRun())
     onelab_cb(0, (void*)"check");
 }
@@ -2510,7 +2510,7 @@ void status_options_cb(Fl_Widget *w, void *data)
       char tmp[256];
       sprintf(tmp, "Model [%d] <<%s>> ", i, GModel::list[i]->getName().c_str());
       char *str = strdup(tmp);
-      Fl_Menu_Item menuItem = {str, 0, model_switch_cb, (void*)i, FL_MENU_RADIO};
+      Fl_Menu_Item menuItem = {str, 0, model_switch_cb, (void*)(intptr_t)i, FL_MENU_RADIO};
       if(GModel::list[i] == GModel::current()){
         selected = i;
         menuItem.flags |= FL_MENU_VALUE;
diff --git a/Fltk/solverButton.cpp b/Fltk/solverButton.cpp
index a24f7559c8ba7bb84dd652750069f505e43357e1..bf2f7474b2068be57ebc6d8987e703c24d77f42f 100644
--- a/Fltk/solverButton.cpp
+++ b/Fltk/solverButton.cpp
@@ -39,7 +39,7 @@ solverButton::solverButton(int x, int y, int w, int h, int num, Fl_Color col)
   _butt[0]->box(FL_FLAT_BOX);
   _butt[0]->color(col);
   _butt[0]->selection_color(col);
-  _butt[0]->callback(solver_cb, (void *)num);
+  _butt[0]->callback(solver_cb, (void *)(intptr_t)num);
   _butt[0]->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE | FL_ALIGN_CLIP);
 
   std::string name = opt_solver_name(num, GMSH_GET, "");
@@ -56,7 +56,7 @@ solverButton::solverButton(int x, int y, int w, int h, int num, Fl_Color col)
   _butt[1]->selection_color(col);
   _popup = new Fl_Menu_Button(x + w - popw, y, popw, h);
   _popup->type(Fl_Menu_Button::POPUP123);
-  _popup->add("Remove", 0, (Fl_Callback *)solver_remove_cb, (void *)num, 0);
+  _popup->add("Remove", 0, (Fl_Callback *)solver_remove_cb, (void *)(intptr_t)num, 0);
 
   end(); // close the group
   resizable(_butt[0]);
diff --git a/Fltk/viewButton.cpp b/Fltk/viewButton.cpp
index 80eb388c97bae0923d7c7d1dbaac9621b3624837..2ce22356954b0ecd6c93cc4bcb389afd69fb932e 100644
--- a/Fltk/viewButton.cpp
+++ b/Fltk/viewButton.cpp
@@ -267,7 +267,7 @@ viewButton::viewButton(int x, int y, int w, int h, int num, Fl_Color col)
   _toggle = new Fl_Check_Button(x, y, w - popw, h);
   _toggle->box(FL_FLAT_BOX);
   _toggle->color(col);
-  _toggle->callback(view_toggle_cb, (void *)num);
+  _toggle->callback(view_toggle_cb, (void *)(intptr_t)num);
   _toggle->align(FL_ALIGN_LEFT | FL_ALIGN_INSIDE | FL_ALIGN_CLIP);
   _toggle->value(opt->visible);
   char tmp[256];
@@ -286,21 +286,21 @@ viewButton::viewButton(int x, int y, int w, int h, int num, Fl_Color col)
   _popup->type(Fl_Menu_Button::POPUP123);
 
   _popup->add("Options", 'o',
-              (Fl_Callback *) view_options_cb, (void *)num, 0);
+              (Fl_Callback *) view_options_cb, (void *)(intptr_t)num, 0);
   _popup->add("_Plugins", 'p',
-              (Fl_Callback *) plugin_cb, (void *)num, 0);
+              (Fl_Callback *) plugin_cb, (void *)(intptr_t)num, 0);
 
   _popup->add("Reload", 'r',
-              (Fl_Callback *) view_reload_cb, (void *)num, 0);
+              (Fl_Callback *) view_reload_cb, (void *)(intptr_t)num, 0);
   _popup->add("Reload Views/All", 0,
-              (Fl_Callback *) view_reload_all_cb, (void *)num, 0);
+              (Fl_Callback *) view_reload_all_cb, (void *)(intptr_t)num, 0);
   _popup->add("Reload Views/Visible", 0,
-              (Fl_Callback *) view_reload_visible_cb, (void *)num, 0);
+              (Fl_Callback *) view_reload_visible_cb, (void *)(intptr_t)num, 0);
   _popup->add("_Create Alias", 0,
-              (Fl_Callback *) view_alias_with_options_cb, (void *)num, 0);
+              (Fl_Callback *) view_alias_with_options_cb, (void *)(intptr_t)num, 0);
 
   _popup->add("Remove", FL_Delete,
-              (Fl_Callback *) view_remove_cb, (void *)num, 0);
+              (Fl_Callback *) view_remove_cb, (void *)(intptr_t)num, 0);
   _popup->add("_Remove Views/All", 0,
               (Fl_Callback *) view_remove_all_cb, (void *)-1, 0);
   _popup->add("Remove Views/Visible", 0,
@@ -308,11 +308,11 @@ viewButton::viewButton(int x, int y, int w, int h, int num, Fl_Color col)
   _popup->add("Remove Views/Invisible", 0,
               (Fl_Callback *) view_remove_all_cb, (void *)-3, 0);
   _popup->add("Remove Views/Other", 0,
-              (Fl_Callback *) view_remove_other_cb, (void *)num, 0);
+              (Fl_Callback *) view_remove_other_cb, (void *)(intptr_t)num, 0);
   _popup->add("Remove Views/Empty", 0,
               (Fl_Callback *) view_remove_all_cb, (void *)-4, 0);
   _popup->add("Remove Views/With Same Name", 0,
-              (Fl_Callback *) view_remove_all_cb, (void *)num, 0);
+              (Fl_Callback *) view_remove_all_cb, (void *)(intptr_t)num, 0);
 
   _popup->add("Sort By Name", 0,
               (Fl_Callback *) view_sort_cb, (void *)0, 0);
@@ -323,26 +323,26 @@ viewButton::viewButton(int x, int y, int w, int h, int num, Fl_Color col)
   _popup->add("Set Visibility/Invert", 0,
               (Fl_Callback *) view_all_visible_cb, (void *)-3, 0);
   _popup->add("Set Visibility/Same Name On", 0,
-              (Fl_Callback *) view_all_visible_cb, (void *)num, 0);
+              (Fl_Callback *) view_all_visible_cb, (void *)(intptr_t)num, 0);
 
   _popup->add("Combine Elements/From All Views", 0,
-              (Fl_Callback *) view_combine_space_all_cb, (void *)num, 0);
+              (Fl_Callback *) view_combine_space_all_cb, (void *)(intptr_t)num, 0);
   _popup->add("Combine Elements/From Visible Views", 0,
-              (Fl_Callback *) view_combine_space_visible_cb, (void *)num, 0);
+              (Fl_Callback *) view_combine_space_visible_cb, (void *)(intptr_t)num, 0);
   _popup->add("Combine Elements/From All Views With Same Name", 0,
-              (Fl_Callback *) view_combine_space_by_name_cb, (void *)num, 0);
+              (Fl_Callback *) view_combine_space_by_name_cb, (void *)(intptr_t)num, 0);
 
   _popup->add("_Combine Time Steps/From All Views", 0,
-              (Fl_Callback *) view_combine_time_all_cb, (void *)num, 0);
+              (Fl_Callback *) view_combine_time_all_cb, (void *)(intptr_t)num, 0);
   _popup->add("Combine Time Steps/From Visible Views", 0,
-              (Fl_Callback *) view_combine_time_visible_cb, (void *)num, 0);
+              (Fl_Callback *) view_combine_time_visible_cb, (void *)(intptr_t)num, 0);
   _popup->add("Combine Time Steps/From All Views With Same Name", 0,
-              (Fl_Callback *) view_combine_time_by_name_cb, (void *)num, 0);
+              (Fl_Callback *) view_combine_time_by_name_cb, (void *)(intptr_t)num, 0);
 
   _popup->add("Apply As Background Mesh", 0,
-              (Fl_Callback *) view_applybgmesh_cb, (void *)num, 0);
+              (Fl_Callback *) view_applybgmesh_cb, (void *)(intptr_t)num, 0);
   _popup->add("Save As...", 0,
-              (Fl_Callback *) view_save_cb, (void *)num, 0);
+              (Fl_Callback *) view_save_cb, (void *)(intptr_t)num, 0);
 
   end(); // close the group
   resizable(_toggle);
diff --git a/Fltk/visibilityWindow.cpp b/Fltk/visibilityWindow.cpp
index 4095b501c6f694a06e8d4ea8c52dde979a8cfc79..95887ba3d29dda0fb5dc01cd2584c65556d10d5e 100644
--- a/Fltk/visibilityWindow.cpp
+++ b/Fltk/visibilityWindow.cpp
@@ -1268,10 +1268,10 @@ visibilityWindow::visibilityWindow(int deltaFontSize)
       input[i]->value("*");
 
       Fl_Button *o1 = new Fl_Button(width / 2 + WB / 2, yy, CC, BH, "Show");
-      o1->callback(visibility_number_cb, (void *)(100+i));
+      o1->callback(visibility_number_cb, (void *)(100+(intptr_t)i));
 
       Fl_Button *o2 = new Fl_Button(width / 2 + WB / 2 + CC + WB, yy, CC, BH, "Hide");
-      o2->callback(visibility_number_cb, (void *)i);
+      o2->callback(visibility_number_cb, (void *)(intptr_t)i);
       yy += BH;
     }