Hi John or anyone else who can help, Can you clarify the behaviour of spm_flip_analyze_images (set from defaults.analyze.flip or to 1 if the defaults global variable doesn't exist) in SPM5? Should it ever be used after spm_vol has returned a structure with a matrix? For writing images for example? Or is the vol.mat treated as correct, once this has been set from spm_vol. Is it only used on true Analyze images, and not on single volume .nii or on two-volume hdr/img NIfTI pairs? It appears not to be used if the second pixdim is negative, (judging from @nifti/private/mayo2nifti1.m) but I'm not exactly sure for which images mayo2nifti1 is called, or where this pixdim comes from. It seems to me that an image should remain the same if the voxel data is flipped AND the matrix is also altered, but as far as I can tell from mayo2nifti1 this behaviour could break down if someone had defaults.analzye.flip = 1. If image1 has negative pixdim, SPM will read it without flipping, but if image2 has flipped voxel data and a flipped matrix (hence should be equivalent to image1) SPM will flip the image, giving the wrong handedness cf. image1. This is a bit of a special case, I know, but I just wanted to check... Also, in John's reorient.m http://www.sph.umich.edu/~nichols/JG5/reorient.m and consequently in my previous version of resize_img.m which was based on this, there is the following: tc = V.mat(1:3,1:4)*c; if spm_flip_analyze_images, tc(1,:) = -tc(1,:); end; this seems wrong to me now, since if the flipping behaviour has been used already to set V.mat, then tc would seem to be correct, before it is altered. Relatedly, there seems to be a problem with the bbvox_from_V function in spm_defs.m, for matrices with negative determinant (true e.g. for spm5/tpm/grey.nii) the sqrt(sum(sqr())) approach misses the negative voxel dimension and reverses the bounding box. This is not noticeable with e.g. grey.nii since the bounding box is symmetric in x, but if you reorient a copy of grey.nii shifting it to the right, the bounding box from bbvox_from_V seems incorrect. I seem to get the right behaviour -- also for rotated images, which I don't think bbvox_from_V handles (?) -- with my new version of: http://www.cs.ucl.ac.uk/staff/gridgway/vbm/world_bb.m which doesn't use spm_flip_analyze_images; but I want to double-check that this sounds like it should be correct in general. One last thing (sorry to go on about this) reorient.m and my current resize_img, also have a line: if spm_flip_analyze_images, mat = diag([-1 1 1 1])*mat; end; after forcing the vox sizes to be positive. I think this is okay, since this output matrix is used both in writing the headers and in reading the data from the existing image, so the physical orientation of the output should be correct. But I wonder if it is a better idea to set the voxel sizes from spm_imatrix (without abs() to force them positive), derive the output matrix from these, and then ignore analyze.flip, since this should mean that the resliced image matrix has the same sign determinant as the input. Right? I like the fact that this approach would just let spm_vol worry about analyze.flip, and assume that it does the right thing, but perhaps I am missing a reason why it is important to reconsider analyze.flip when reslicing? Sorry for such a long (and boring -- I know everyone hates orientation issues) email, thanks very much for any help anyone can offer, Ged.