diff --git a/Mesh/3D_Mesh_Netgen.cpp b/Mesh/3D_Mesh_Netgen.cpp
index b7d07b09e88781c28732ce027fe5104826d287da..c97d1c932e3a3414011be0940a826ad790b3b56d 100644
--- a/Mesh/3D_Mesh_Netgen.cpp
+++ b/Mesh/3D_Mesh_Netgen.cpp
@@ -1,4 +1,4 @@
-// $Id: 3D_Mesh_Netgen.cpp,v 1.9 2004-06-30 17:49:51 geuzaine Exp $
+// $Id: 3D_Mesh_Netgen.cpp,v 1.10 2004-06-30 19:51:44 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -193,7 +193,8 @@ void Netgen::MeshVolume()
   mp.maxh = 1;
   mp.fineness = 1;
   mp.secondorder = 0;
-  Ng_GenerateVolumeMesh(_ngmesh, &mp);
+  //Ng_GenerateVolumeMesh(_ngmesh, &mp);
+  NgAddOn_GenerateVolumeMesh(_ngmesh, &mp); // does not optimize
 }
 
 void Netgen::TransferVolumeMesh()
diff --git a/Netgen/nglib_addon.cpp b/Netgen/nglib_addon.cpp
index 3c7d5617f41c7342a8c3659688a40eb66d96748e..8e196fb8e48167fccb8459e0a05f1bccce4444a9 100644
--- a/Netgen/nglib_addon.cpp
+++ b/Netgen/nglib_addon.cpp
@@ -24,7 +24,10 @@ class mystreambuf: public streambuf
       // ignore these messages
     }
     else{
-      Msg(INFO, txt);
+      if(!strncmp(txt, "ERROR", 5))
+	Msg(FATAL, txt);
+      else
+	Msg(INFO, txt);
     }
     index = 0; 
     return 0; 
@@ -56,8 +59,26 @@ void NgAddOn_Init ()
   testout = new ofstream ("/dev/null");
 }
 
-// optimizes an existing 3D mesh
+// generates volume mesh from surface mesh, without optimization
+Ng_Result NgAddOn_GenerateVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp)
+{
+  Mesh * m = (Mesh*)mesh;
+  
+  
+  MeshingParameters mparam;
+  mparam.maxh = mp->maxh;
+  mparam.meshsizefilename = mp->meshsize_filename;
 
+  m->CalcLocalH();
+
+  MeshVolume (mparam, *m);
+  //RemoveIllegalElements (*m);
+  //OptimizeVolume (mparam, *m, NULL);
+
+  return NG_OK;
+}
+
+// optimizes an existing 3D mesh
 Ng_Result NgAddOn_OptimizeVolumeMesh (Ng_Mesh * mesh, Ng_Meshing_Parameters * mp)
 {
   Mesh * m = (Mesh*)mesh;
diff --git a/Netgen/nglib_addon.h b/Netgen/nglib_addon.h
index b8e56d32ef3b3ad8cfa32ba98ff55f7eae06343f..32c39b147fcf9e3765f68760390e324f66a57d8f 100644
--- a/Netgen/nglib_addon.h
+++ b/Netgen/nglib_addon.h
@@ -2,6 +2,7 @@
 #define _NGLIB_ADDON_H_
 
 void NgAddOn_Init();
+Ng_Result NgAddOn_GenerateVolumeMesh(Ng_Mesh * mesh, Ng_Meshing_Parameters * mp);
 Ng_Result NgAddOn_OptimizeVolumeMesh(Ng_Mesh * mesh, Ng_Meshing_Parameters * mp);
 
 #endif