diff --git a/Geo/MElement.h b/Geo/MElement.h
index 45f555c7ef8ae62d580c9d83f9fd439aeeb4f9a6..b14436311948d13e4deb1d9d5dfde5cbf9babf76 100644
--- a/Geo/MElement.h
+++ b/Geo/MElement.h
@@ -455,11 +455,6 @@ class MTetrahedron : public MElement {
     : MElement(num, part)
   {
     _v[0] = v0; _v[1] = v1; _v[2] = v2; _v[3] = v3;
-    if (getVolume() < 0)
-      {
-	_v[0] = v1; _v[1] = v0;
-      }
-
   }
   MTetrahedron(std::vector<MVertex*> &v, int num=0, int part=0) 
     : MElement(num, part)
diff --git a/Mesh/meshGRegion.cpp b/Mesh/meshGRegion.cpp
index ff1591d2c8f0e499111c2dacf39257fa4f05ae11..5b60728f7bc3adee8cbe6c3182e9261d877a83fc 100644
--- a/Mesh/meshGRegion.cpp
+++ b/Mesh/meshGRegion.cpp
@@ -1,4 +1,4 @@
-// $Id: meshGRegion.cpp,v 1.17 2006-11-29 16:57:01 remacle Exp $
+// $Id: meshGRegion.cpp,v 1.18 2006-11-29 23:44:40 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -240,6 +240,8 @@ Ng_Mesh *buildNetgenStructure(GRegion *gr, bool importVolumeMesh,
   if(importVolumeMesh){
     for(unsigned int i = 0; i< gr->tetrahedra.size(); i++){
       MTetrahedron *t = gr->tetrahedra[i];
+      // netgen expects tet with negative volume
+      if(t->getVolumeSign() > 0) t->revert();
       int tmp[4];
       tmp[0] = t->getVertex(0)->getNum();
       tmp[1] = t->getVertex(1)->getNum();