diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index 4e4094bc7a557a04807903e0e133d53faa8a8531..d974fa54fed6ef9143d402ca0ae303a40ab16aa6 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.79 2001-08-13 16:30:22 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.80 2001-08-17 08:36:33 geuzaine Exp $
 
 #include <sys/types.h>
 #include <signal.h>
@@ -598,7 +598,7 @@ void geometry_elementary_add_new_point_cb(CALLBACK_ARGS){
   WID->create_geometry_context_window(1);
 }
 
-static void _new_multiline_spline(int dim){
+static void _new_multiline(int type){
   Vertex   *v;
   Curve    *c;
   Surface  *s;
@@ -619,9 +619,11 @@ static void _new_multiline_spline(int dim){
     }
     if (ib == -1){ /* 'e' */
       if(n >= 2) {
-	switch(dim){
+	switch(type){
 	case 0 : add_multline(n,p,CTX.filename); break;
 	case 1 : add_spline(n,p,CTX.filename); break;
+	case 2 : add_bspline(n,p,CTX.filename); break;
+	case 3 : add_bezier(n,p,CTX.filename); break;
 	}
       }
       n=0;
@@ -642,7 +644,7 @@ void geometry_elementary_add_new_line_cb(CALLBACK_ARGS){
   // Disallow multiline selection at the moment, since multilines
   // dont't work so well...
   //
-  //_new_multiline_spline(0);
+  //_new_multiline(0);
   //
   Vertex   *v;
   Curve    *c;
@@ -679,7 +681,10 @@ void geometry_elementary_add_new_line_cb(CALLBACK_ARGS){
   Msg(STATUS3N,"Ready");
 }
 void geometry_elementary_add_new_spline_cb(CALLBACK_ARGS){
-  _new_multiline_spline(1);
+  _new_multiline(1);
+}
+void geometry_elementary_add_new_bspline_cb(CALLBACK_ARGS){
+  _new_multiline(2);
 }
 void geometry_elementary_add_new_circle_cb(CALLBACK_ARGS){
   Vertex   *v;
diff --git a/Fltk/Callbacks.h b/Fltk/Callbacks.h
index 791493badd344f52b913bc907281cbd76e5cdd75..d679f50dd189cab18db372ab66cbc41a22c7477c 100644
--- a/Fltk/Callbacks.h
+++ b/Fltk/Callbacks.h
@@ -106,6 +106,7 @@ void       geometry_elementary_add_new_parameter_cb(CALLBACK_ARGS) ;
 void       geometry_elementary_add_new_point_cb(CALLBACK_ARGS) ;
 void       geometry_elementary_add_new_line_cb(CALLBACK_ARGS) ;
 void       geometry_elementary_add_new_spline_cb(CALLBACK_ARGS) ;
+void       geometry_elementary_add_new_bspline_cb(CALLBACK_ARGS) ;
 void       geometry_elementary_add_new_circle_cb(CALLBACK_ARGS) ;
 void       geometry_elementary_add_new_ellipsis_cb(CALLBACK_ARGS) ;
 void       geometry_elementary_add_new_planesurface_cb(CALLBACK_ARGS) ;
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 9f13c26af91a59847e60dc936cdc0b638f24b546..834bb9fb32d49fa392529c0d6392a49ad514ef92 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.107 2001-08-12 14:23:36 geuzaine Exp $
+// $Id: GUI.cpp,v 1.108 2001-08-17 08:36:33 geuzaine Exp $
 
 // To make the interface as visually consistent as possible, please:
 // - use the BH, BW, WB, IW values for button heights/widths, window borders, etc.
@@ -121,6 +121,7 @@ Context_Item menu_geometry[] =
 	      { "Point",         (Fl_Callback *)geometry_elementary_add_new_point_cb } ,
 	      { "Line",          (Fl_Callback *)geometry_elementary_add_new_line_cb } ,
 	      { "Spline",        (Fl_Callback *)geometry_elementary_add_new_spline_cb } ,
+	      { "B-Spline",      (Fl_Callback *)geometry_elementary_add_new_bspline_cb } ,
 	      { "Circle",        (Fl_Callback *)geometry_elementary_add_new_circle_cb } ,
 	      { "Ellipsis",      (Fl_Callback *)geometry_elementary_add_new_ellipsis_cb } ,
 	      { "Plane Surface", (Fl_Callback *)geometry_elementary_add_new_planesurface_cb } ,