diff --git a/Geo/CAD.cpp b/Geo/CAD.cpp
index 550830e0984feb62677c14daeb9eeeecb0c9d02f..3a4e83ccfb6557be5e2b18f22c67ec3e2eca528d 100644
--- a/Geo/CAD.cpp
+++ b/Geo/CAD.cpp
@@ -1,4 +1,4 @@
-// $Id: CAD.cpp,v 1.61 2003-03-11 05:57:06 geuzaine Exp $
+// $Id: CAD.cpp,v 1.62 2003-03-18 00:15:43 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -30,13 +30,6 @@
 #include "Edge.h"
 #include "Context.h"
 
-#if defined(HAVE_GSL)
-#include "gsl_newt.h"
-#include "gsl_brent.h"
-#else
-#include "NR.h"
-#endif
-
 extern Mesh *THEM;
 extern Context_T CTX;
 
diff --git a/Geo/Makefile b/Geo/Makefile
index acd83feb4f6f869abe9dcf98cb6f85b86061ea40..a79ae4a4bad3bad2126b5c36e537cca1c6795a00 100644
--- a/Geo/Makefile
+++ b/Geo/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.36 2003-03-02 18:44:16 geuzaine Exp $
+# $Id: Makefile,v 1.37 2003-03-18 00:15:43 geuzaine Exp $
 
 include ../variables
 
@@ -44,8 +44,7 @@ CAD.o: CAD.cpp ../Common/Gmsh.h ../Common/Message.h ../DataStr/Malloc.h \
   ../Numeric/Numeric.h Geo.h ../Mesh/Mesh.h ../Mesh/Vertex.h \
   ../Mesh/Simplex.h ../Mesh/Edge.h ../Geo/ExtrudeParams.h ../Mesh/STL.h \
   ../Mesh/Metric.h ../Mesh/Matrix.h DataBase.h ../Mesh/Interpolation.h \
-  ../Mesh/Create.h CAD.h ExtrudeParams.h ../Common/Context.h \
-  ../Numeric/gsl_newt.h ../Numeric/gsl_brent.h
+  ../Mesh/Create.h CAD.h ExtrudeParams.h ../Common/Context.h
 DataBase.o: DataBase.cpp ../Common/Gmsh.h ../Common/Message.h \
   ../DataStr/Malloc.h ../DataStr/List.h ../DataStr/Tree.h \
   ../DataStr/avl.h ../DataStr/Tools.h ../Numeric/Numeric.h Geo.h \
diff --git a/Mesh/Utils.cpp b/Mesh/Utils.cpp
index 94387d20f287391436f81ebfcf69378116494bdd..cec9f43756f2390fdc58ab74f4e700301bf921dc 100644
--- a/Mesh/Utils.cpp
+++ b/Mesh/Utils.cpp
@@ -1,4 +1,4 @@
-// $Id: Utils.cpp,v 1.17 2003-03-01 22:36:42 geuzaine Exp $
+// $Id: Utils.cpp,v 1.18 2003-03-18 00:15:43 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -31,7 +31,7 @@
 #include <gsl/gsl_vector.h>
 #include <gsl/gsl_linalg.h>
 #else
-#include "NR.h"
+#include "nrutil.h"
 #endif
 
 extern Context_T CTX;
diff --git a/NR/NR.h b/NR/NR.h
deleted file mode 100644
index ed754c101a43d6c753adbce154a1bf220458adc5..0000000000000000000000000000000000000000
--- a/NR/NR.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _NR_H_
-#define _NR_H_
-
-#include "Gmsh.h"
-#include "nrutil.h"
-
-/* "public" routines used in Gmsh */
-
-void dsvdcmp(double **a, int m, int n, double w[], double **v);
-double brent(double ax, double bx, double cx,
-	     double (*f)(double), double tol, double *xmin);
-void mnbrak(double *ax, double *bx, double *cx, double *fa, double *fb,
-	    double *fc, double (*func)(double));
-void newt(double x[], int n, int *check,
-	  void (*vecfunc)(int, double [], double []));
-
-#endif
diff --git a/NR/nrutil.h b/NR/nrutil.h
index ddfa7d0b51691cfbe767e1ba75d0731e6fea7a3b..436193de5e59b9f071990f489ecfa5cd4e3146d6 100644
--- a/NR/nrutil.h
+++ b/NR/nrutil.h
@@ -4,6 +4,7 @@
 /* This file has been modified for inclusion in Gmsh */
 
 /* Gmsh: */
+#include "Gmsh.h"
 #include "Numeric.h"
 
 /* Gmsh:
diff --git a/Numeric/Numeric.h b/Numeric/Numeric.h
index 25e2136229415b0e07364067834410236b704cd5..44db5599b5507e2d07cb600d9ca7a8a6249879bf 100644
--- a/Numeric/Numeric.h
+++ b/Numeric/Numeric.h
@@ -74,4 +74,15 @@ double InterpolateIso(double *X, double *Y, double *Z,
 void gradSimplex (double *x, double *y, double *z, double *v, double *grad);
 
 
+/* Numerical routines implemented using either Numerical Recipes or
+   the GSL */
+
+void dsvdcmp(double **a, int m, int n, double w[], double **v);
+double brent(double ax, double bx, double cx,
+	     double (*f)(double), double tol, double *xmin);
+void mnbrak(double *ax, double *bx, double *cx, double *fa, double *fb,
+	    double *fc, double (*func)(double));
+void newt(double x[], int n, int *check,
+	  void (*vecfunc)(int, double [], double []));
+
 #endif
diff --git a/Numeric/gsl_brent.h b/Numeric/gsl_brent.h
deleted file mode 100644
index caa02ad7eff0540b76703f8d36dba73c948f6d9f..0000000000000000000000000000000000000000
--- a/Numeric/gsl_brent.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef _GSL_BRENT_H_
-#define _GSL_BRENT_H_
-
-// Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-// USA.
-// 
-// Please report all bugs and problems to "gmsh@geuz.org".
-
-double brent(double ax, double xx, double bx, 
-	     double (*f)(double), double tol, double *xmin);
-void mnbrak(double *ax, double *bx, double *cx, double *fa, double *fb, double *fc,
-	    double (*func)(double));
-
-#endif
diff --git a/Numeric/gsl_newt.h b/Numeric/gsl_newt.h
deleted file mode 100644
index 5730ac634a58d4738c6ee2528e4bf5bd27d25b5d..0000000000000000000000000000000000000000
--- a/Numeric/gsl_newt.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _GSL_NEWT_H_
-#define _GSL_NEWT_H_
-
-// Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
-//
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-// USA.
-// 
-// Please report all bugs and problems to "gmsh@geuz.org".
-
-void newt(double x[], int n, int *check, void (*func)(int, double [], double []));
-
-#endif