diff --git a/Post/adaptiveData.cpp b/Post/adaptiveData.cpp
index 38e86c223f257c75624294572a6fc09e5fc30c26..5bf8a9d1d4cf2d9bbcefe78601c21c8a78a8fc53 100644
--- a/Post/adaptiveData.cpp
+++ b/Post/adaptiveData.cpp
@@ -1066,8 +1066,11 @@ void adaptiveElements<T>::adapt(double tol, int numComp,
       it != T::all.end(); it++)
     (*it)->visible = false;
   
-  if(!plug || tol != 0.)
-    T::error(fabs(maxVal - minVal), tol);
+  if(!plug || tol != 0.){
+    double avg = fabs(maxVal - minVal);
+    if(tol < 0) avg = 1.; // force visibility to the smallest subdivision
+    T::error(avg, tol);
+  }
   
   if(plug)
     plug->assignSpecificVisibility();