diff --git a/fslorient.cc b/fslorient.cc
index d3814f465a9fe2beadfbc88f1265557ea7b32806..c2a2b2a177c2faea902005234608058e09956257 100644
--- a/fslorient.cc
+++ b/fslorient.cc
@@ -106,11 +106,10 @@ int fmrib_main(int argc,char *argv[])
   int retval=0;
   string option=argv[1], filename;
 
-  volumeinfo volinfo;
   volume4D<T> invol;
 
   filename=argv[argc-1];
-  read_orig_volume4D(invol,filename,volinfo);
+  read_orig_volume4D(invol,filename);
 
   if (option=="-getorient") {
     getorient(invol);
@@ -185,9 +184,9 @@ int fmrib_main(int argc,char *argv[])
 
 
   if (modified) {
-    if (FslBaseFileType(FslGetFileType(&volinfo))!=FSL_TYPE_ANALYZE) {
-      FslSetOverrideOutputType(FslGetFileType(&volinfo));
-      save_orig_volume4D(invol,filename,volinfo);
+    if (FslBaseFileType(fslFileType(filename))!=FSL_TYPE_ANALYZE) {
+      FslSetOverrideOutputType(fslFileType(filename));
+      save_orig_volume4D(invol,filename);
       FslSetOverrideOutputType(-1);  // restore to default
     } else {
       cerr << "Cannot modify orientation for Analyze files" << endl;
diff --git a/fslpspec.cc b/fslpspec.cc
index 65a41f785f745ed0153e39ee2fe3b6ddf6cc5f7a..a69e327b2781e59d2120bdab74fbab5f7e30efc5 100644
--- a/fslpspec.cc
+++ b/fslpspec.cc
@@ -60,28 +60,19 @@ int fmrib_main(int argc, char* argv[])
     outname=inname;
 
   Matrix iMat, oMat;
-  volume4D<float> vout;
+  volume4D<float> vin,vout;
   volume<float> mask;
-  volumeinfo volinfo;
-  float vinTR;
 
-  {
-    volume4D<float> vin;
-    read_volume4D(vin,argv[1],volinfo);
-
-    generate_masks(mask,stddevvol(vin));
-    iMat = vin.matrix(mask);
-    vinTR=vin.TR();
-  } 
+  read_volume4D(vin,argv[1]);
+  generate_masks(mask,stddevvol(vin));
+  iMat = vin.matrix(mask);  
 
   oMat = calcFFT(iMat);
  
   vout.setmatrix(oMat,mask);
-  vout.setTR(vinTR);
+  copybasicproperties(vin,vout);
 
-  int retval=0;
-  retval = save_volume4D(vout,outname,volinfo);
-  return retval;
+  return save_volume4D(vout,outname);
 }
 
   
diff --git a/fslswapdim.cc b/fslswapdim.cc
index 1b253b4a30c8e2f296d8c68401e5963d563b97c8..7601d5419e5e408bf2747adac7f5784bdd935447 100644
--- a/fslswapdim.cc
+++ b/fslswapdim.cc
@@ -35,9 +35,8 @@ int fmrib_main(int argc,char *argv[])
     showmat=true;
   }
 
-  volumeinfo volinfo;
   volume4D<T> invol;
-  read_orig_volume4D(invol,inname,volinfo);
+  read_orig_volume4D(invol,inname);
 
   Matrix affmat;
   affmat = invol.swapmat(newx,newy,newz);
@@ -54,7 +53,7 @@ int fmrib_main(int argc,char *argv[])
 
   int retval=0;
   if (outname!="") {
-    retval = save_orig_volume4D(invol,outname,volinfo);
+    retval = save_orig_volume4D(invol,outname);
   }
   return retval;
 }