diff --git a/dtifit.cc b/dtifit.cc
index 4b7264acc5913f95e71879b5d13d43fdd4b22687..0a36f029f83ba6e0d6d29cd1c5d3b182bdc9eb98 100644
--- a/dtifit.cc
+++ b/dtifit.cc
@@ -257,9 +257,8 @@ int main(int argc, char** argv)
   if(b.Nrows()>1) b=b.t();
   volume4D<float> data;
   volume<int> mask;
-  volumeinfo tempinfo;
   if(opts.verbose.value()) cout<<"reading data"<<endl;
-  read_volume4D(data,opts.dtidatafile.value(),tempinfo);
+  read_volume4D(data,opts.dtidatafile.value());
   if(opts.verbose.value()) cout<<"reading mask"<<endl;
   read_volume(mask,opts.maskfile.value());
   if(opts.verbose.value()) cout<<"ok"<<endl;
@@ -419,47 +418,48 @@ int main(int argc, char** argv)
       tensfile+="littlebit";
     }
 
-  
-    FslSetCalMinMax(&tempinfo,0,1);
-    save_volume(FA,fafile,tempinfo);
-
-    FslSetCalMinMax(&tempinfo,0,S0.max());
-    save_volume(S0,s0file,tempinfo);
-
-    FslSetCalMinMax(&tempinfo,-1,1);
-    save_volume(MODE,MOfile,tempinfo);
-    save_volume4D(V1,v1file,tempinfo);
-    save_volume4D(V2,v2file,tempinfo);
-    save_volume4D(V3,v3file,tempinfo);
-
-    FslSetCalMinMax(&tempinfo,0,l1.max());
-    save_volume(l1,l1file,tempinfo);
-    save_volume(l2,l2file,tempinfo);
-    save_volume(l3,l3file,tempinfo);
-    save_volume(MD,MDfile,tempinfo);
-
-    if(opts.savetensor.value())
-      save_volume4D(Delements,tensfile,tempinfo);
-    
+    FA.setDisplayMaximumMinimum(1,0);
+    save_volume(FA,fafile);
+    S0.setDisplayMaximumMinimum(S0.max(),0);
+    save_volume(S0,s0file);
+    MODE.setDisplayMaximumMinimum(1,-1);
+    save_volume(MODE,MOfile);
+    V1.setDisplayMaximumMinimum(1,-1);
+    save_volume4D(V1,v1file);
+    V2.setDisplayMaximumMinimum(1,-1);
+    save_volume4D(V2,v2file);
+    V3.setDisplayMaximumMinimum(1,-1);
+    save_volume4D(V3,v3file);
+    l1.setDisplayMaximumMinimum(l1.max(),0);
+    save_volume(l1,l1file);
+    l2.setDisplayMaximumMinimum(l1.max(),0);
+    save_volume(l2,l2file);
+    l3.setDisplayMaximumMinimum(l1.max(),0);
+    save_volume(l3,l3file);
+    MD.setDisplayMaximumMinimum(l1.max(),0);
+    save_volume(MD,MDfile);
+
+    if(opts.savetensor.value()) {
+      Delements.setDisplayMaximumMinimum(l1.max(),0);
+      save_volume4D(Delements,tensfile);
+    }
 
     if(opts.cni.value()!=""){
       string cnifile=opts.ofile.value()+"_cnicope";
       if(opts.littlebit.value()){
 	cnifile+="littlebit";
       }
-      FslSetCalMinMax(&tempinfo,0,cni_cope.max());
-      save_volume4D(cni_cope,cnifile,tempinfo);
+      cni_cope.setDisplayMaximumMinimum(cni_cope.max(),0);
+      save_volume4D(cni_cope,cnifile);
     }
     if(opts.sse.value()){
       string ssefile=opts.ofile.value()+"_sse";
       if(opts.littlebit.value()){
 	ssefile+="littlebit";
       }
-      FslSetCalMinMax(&tempinfo,0,sse.max());
-      save_volume(sse,ssefile,tempinfo);
+      sse.setDisplayMaximumMinimum(sse.max(),0);
+      save_volume(sse,ssefile);
     }
-
-
   return 0;
 }
 
diff --git a/kurtosis.cc b/kurtosis.cc
index 2eaa1621596f5641a9fbcf44f860bded44c31553..ce6c381ddbb1c8060c4abdef6df8bf9641a1ba10 100644
--- a/kurtosis.cc
+++ b/kurtosis.cc
@@ -332,9 +332,8 @@ int main(int argc, char** argv)
 
   volume4D<float> data;
   volume<int> mask;
-  volumeinfo tempinfo;
   if(opts.verbose.value()) cout<<"reading data"<<endl;
-  read_volume4D(data,opts.dtidatafile.value(),tempinfo);
+  read_volume4D(data,opts.dtidatafile.value());
   if(opts.verbose.value()) cout<<"reading mask"<<endl;
   read_volume(mask,opts.maskfile.value());
   if(opts.verbose.value()) cout<<"ok"<<endl;
@@ -461,20 +460,20 @@ int main(int argc, char** argv)
       kurtosisfile+="littlebit";
     }
   
-    save_volume(FA,fafile,tempinfo);
-    save_volume(S0,s0file,tempinfo);
-    save_volume(l1,l1file,tempinfo);
-    save_volume(l2,l2file,tempinfo);
-    save_volume(l3,l3file,tempinfo);
-    save_volume(MD,MDfile,tempinfo);
-    save_volume4D(V1,v1file,tempinfo);
-    save_volume4D(V2,v2file,tempinfo);
-    save_volume4D(V3,v3file,tempinfo);
-    save_volume(MK,MKfile,tempinfo);
+    save_volume(FA,fafile);
+    save_volume(S0,s0file);
+    save_volume(l1,l1file);
+    save_volume(l2,l2file);
+    save_volume(l3,l3file);
+    save_volume(MD,MDfile);
+    save_volume4D(V1,v1file);
+    save_volume4D(V2,v2file);
+    save_volume4D(V3,v3file);
+    save_volume(MK,MKfile);
 
     if(opts.savetensor.value()){
-      save_volume4D(Delements,tensfile,tempinfo);
-      save_volume4D(KurtTens,kurtosisfile,tempinfo);
+      save_volume4D(Delements,tensfile);
+      save_volume4D(KurtTens,kurtosisfile);
     }
       
     
diff --git a/make_dyadic_vectors.cc b/make_dyadic_vectors.cc
index e92435cb1dbce913d42d8cc2b79eab84ee004a02..aee608a0c8ece5dccea9814d78c61a2e626ae4f3 100644
--- a/make_dyadic_vectors.cc
+++ b/make_dyadic_vectors.cc
@@ -17,8 +17,7 @@ int main ( int argc, char **argv ){
   }
 
   volume4D<float> ths,phs;
-  volumeinfo tempinfo;
-  read_volume4D(ths,argv[1],tempinfo);
+  read_volume4D(ths,argv[1]);
   read_volume4D(phs,argv[2]);
   volume<float> mask;
   string oname;
@@ -77,7 +76,7 @@ int main ( int argc, char **argv ){
     }
   }
   
-  save_volume4D(dyadic_vecs,oname,tempinfo);
+  save_volume4D(dyadic_vecs,oname);
 }