diff --git a/Common/Options.cpp b/Common/Options.cpp
index 58bfd6e0abdfc5aeac48a8fbab81e0b03224a11a..2647bbc61cedc9fc8171a4f4295a63bfc493382d 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -5153,6 +5153,7 @@ double opt_mesh_color_carousel(OPT_ARGS_NUM)
   if(FlGui::available() && (action & GMSH_GUI)){
     FlGui::instance()->options->mesh.choice[4]->value
       (CTX::instance()->mesh.colorCarousel);
+    drawContext::global()->resetFontTextures();
   }
 #endif
   return CTX::instance()->mesh.colorCarousel;
@@ -7943,6 +7944,7 @@ unsigned int opt_general_color_text(OPT_ARGS_COL)
     CTX::instance()->color.text = val;
 #if defined(HAVE_FLTK)
   CCC(CTX::instance()->color.text, FlGui::instance()->options->general.color[3]);
+  drawContext::global()->resetFontTextures();
 #endif
   return CTX::instance()->color.text;
 }
@@ -7953,6 +7955,7 @@ unsigned int opt_general_color_axes(OPT_ARGS_COL)
     CTX::instance()->color.axes = val;
 #if defined(HAVE_FLTK)
   CCC(CTX::instance()->color.axes, FlGui::instance()->options->general.color[4]);
+  drawContext::global()->resetFontTextures();
 #endif
   return CTX::instance()->color.axes;
 }
@@ -7963,6 +7966,7 @@ unsigned int opt_general_color_small_axes(OPT_ARGS_COL)
     CTX::instance()->color.smallAxes = val;
 #if defined(HAVE_FLTK)
   CCC(CTX::instance()->color.smallAxes, FlGui::instance()->options->general.color[5]);
+  drawContext::global()->resetFontTextures();
 #endif
   return CTX::instance()->color.smallAxes;
 }
@@ -8507,6 +8511,7 @@ unsigned int opt_view_color_text2d(OPT_ARGS_COL)
 #if defined(HAVE_FLTK)
   if(_gui_action_valid(action, num)){
     CCC(opt->color.text2d, FlGui::instance()->options->view.color[10]);
+    drawContext::global()->resetFontTextures();
   }
 #endif
   return opt->color.text2d;
@@ -8525,6 +8530,7 @@ unsigned int opt_view_color_text3d(OPT_ARGS_COL)
 #if defined(HAVE_FLTK)
   if(_gui_action_valid(action, num)){
     CCC(opt->color.text3d, FlGui::instance()->options->view.color[11]);
+    drawContext::global()->resetFontTextures();
   }
 #endif
   return opt->color.text3d;
@@ -8543,6 +8549,7 @@ unsigned int opt_view_color_axes(OPT_ARGS_COL)
 #if defined(HAVE_FLTK)
   if(_gui_action_valid(action, num)){
     CCC(opt->color.axes, FlGui::instance()->options->view.color[12]);
+    drawContext::global()->resetFontTextures();
   }
 #endif
   return opt->color.axes;
diff --git a/Fltk/FlGui.cpp b/Fltk/FlGui.cpp
index 7f5fb23d668117345fef65060d3ea50459227c96..cd12e7da24d3ed4a154c873a2713ecf2f188a9b7 100644
--- a/Fltk/FlGui.cpp
+++ b/Fltk/FlGui.cpp
@@ -180,6 +180,12 @@ class drawContextFltk : public drawContextGlobal{
   {
     gl_draw(str);
   }
+  void resetFontTextures()
+  {
+#if defined(__APPLE__) && (FL_MAJOR_VERSION == 1) && (FL_MINOR_VERSION == 3)
+    gl_texture_pile_height(1); // force font texture recomputation
+#endif
+  }
 };
 
 static int globalShortcut(int event)
diff --git a/Graphics/drawContext.h b/Graphics/drawContext.h
index ced0b66e4263281ac5766df98003ef0c5ecfc736..651e7ed27a3d8d03cba8ab1abe111483f272a8ae 100644
--- a/Graphics/drawContext.h
+++ b/Graphics/drawContext.h
@@ -97,6 +97,7 @@ class drawContextGlobal {
   virtual int getStringHeight(){ return 12; }
   virtual int getStringDescent(){ return 3; }
   virtual void drawString(const char *str){}
+  virtual void resetFontTextures(){}
 };
 
 class drawContext {