diff --git a/Graphics/Post.cpp b/Graphics/Post.cpp
index 43f990e857ad2e63e6835de1003a1e2d4081de46..e34a941294b1470e9c09bdbf31de87891df06684 100644
--- a/Graphics/Post.cpp
+++ b/Graphics/Post.cpp
@@ -1,4 +1,4 @@
-// $Id: Post.cpp,v 1.116 2007-08-25 22:18:05 geuzaine Exp $
+// $Id: Post.cpp,v 1.117 2007-08-25 22:42:28 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -485,6 +485,22 @@ void addTensorElement(PView *p, int numEdges, double xyz[NMAX][3],
 {
 }
 
+bool skipElement(PView *p, int numEdges)
+{
+  PViewOptions *opt = p->getOptions();
+  switch(numEdges){
+  case 0: return !opt->DrawPoints;
+  case 1: return !opt->DrawLines;
+  case 3: return !opt->DrawTriangles;
+  case 4: return !opt->DrawQuadrangles;
+  case 6: return !opt->DrawTetrahedra;
+  case 12: return !opt->DrawHexahedra;
+  case 9: return !opt->DrawPrisms;
+  case 8: return !opt->DrawPyramids;
+  default: return true;
+  }
+}
+
 void addElementsInArrays(PView *p, bool preprocessNormalsOnly=false)
 {
   PViewData *data = p->getData();
@@ -522,10 +538,11 @@ void addElementsInArrays(PView *p, bool preprocessNormalsOnly=false)
   double xyz[NMAX][3], val[NMAX][9];
 
   for(int i = 0; i < data->getNumElements(); i++){
+    int numEdges = data->getNumEdges(i);
+    if(skipElement(p, numEdges)) continue;
     int dim = data->getDimension(i);
     int numComp = data->getNumComponents(i);
     int numNodes = data->getNumNodes(i);
-    int numEdges = data->getNumEdges(i);
     for(int j = 0; j < numNodes; j++){
       data->getNode(i, j, xyz[j][0], xyz[j][1], xyz[j][2]);
       for(int k = 0; k < numComp; k++)
@@ -534,11 +551,11 @@ void addElementsInArrays(PView *p, bool preprocessNormalsOnly=false)
     changeCoordinates(p, numNodes, numComp, xyz, val, offset, raise, transform);
     if(opt->ShowElement) 
       addOutlineElement(p, numEdges, xyz, pre);
-    if(numComp == 1)
+    if(numComp == 1 && opt->DrawScalars)
       addScalarElement(p, numEdges, xyz, val, pre);
-    else if(numComp == 3)
+    else if(numComp == 3 && opt->DrawVectors)
       addVectorElement(p, numEdges, xyz, val, pre);
-    else if(numComp == 9)
+    else if(numComp == 9 && opt->DrawTensors)
       addTensorElement(p, numEdges, xyz, val, pre);
   }
 }
diff --git a/Post/PViewOptions.cpp b/Post/PViewOptions.cpp
index ea8220b9e2c2035a7fcc869253932227ea4a9c2d..60edeef8f6fd0940e33feca298995997a2f175d2 100644
--- a/Post/PViewOptions.cpp
+++ b/Post/PViewOptions.cpp
@@ -1,4 +1,4 @@
-// $Id: PViewOptions.cpp,v 1.4 2007-08-25 19:19:49 geuzaine Exp $
+// $Id: PViewOptions.cpp,v 1.5 2007-08-25 22:42:28 geuzaine Exp $
 //
 // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
 //
@@ -55,7 +55,7 @@ PViewOptions::PViewOptions()
   AngleSmoothNormals = 30;
   SaturateValues = 0;
   FakeTransparency = 0;
-  ShowElement = 1;
+  ShowElement = 0;
   ShowTime = ShowScale = 1;
   ScaleType = Default;
   RangeType = Linear;