diff --git a/zUtil_Geo/gtGeoLab2Sam.m b/zUtil_Geo/gtGeoLab2Sam.m
index 8f4354742418073a31ac81117d52436a6f983697..aacee4d3debd864fa5d9e5d1ef9cb2386714e06d 100644
--- a/zUtil_Geo/gtGeoLab2Sam.m
+++ b/zUtil_Geo/gtGeoLab2Sam.m
@@ -74,13 +74,20 @@ if (~isfield(samgeo,'lab2sam') || (isfield(samgeo,'lab2sam') && isempty(samgeo.l
 elseif (conf.only_rot)
     error('Transformation matrix already defined. Set ''only_rot'' to false.')
 else
-    lab2sam = samgeo.lab2sam;   
+    lab2sam = samgeo.lab2sam;
 end
 
 %%%%%%%%%%%%%%%%%%%%%
 %%% Rotation in Lab
 %%%%%%%%%%%%%%%%%%%%%
 
+ones_in = ones(size(labXYZ, 1), 1);
+
+if (~freevec)
+    % Vectors relative to rotation axis position
+    labXYZ = labXYZ - labgeo.rotpos(ones_in, :);
+end
+
 if (use_diffractometer)
     if (use_instr_tensor_4x4)
         rottensors = omega;
@@ -108,8 +115,6 @@ if (use_diffractometer)
         labXYZ_rot = reshape(labXYZ_rot, 3, [])';
     end
 else
-    ones_in = ones(size(labXYZ, 1), 1);
-
     % Tensor which rotates with omega from Lab back to Sample:
     if (use_instr_tensor_3x3)
         % This means that the rotation tensors were passed already!
@@ -123,11 +128,6 @@ else
         rottensors = gtMathsRotationTensor(omega, rotcomp);
     end
 
-    if (~freevec)
-        % Vectors relative to rotation axis position
-        labXYZ = labXYZ - labgeo.rotpos(ones_in, :);
-    end
-
     rottensors_t = reshape(rottensors, 3, []);
 
     if (conf.element_wise)
@@ -143,12 +143,12 @@ else
         labXYZ_rot = labXYZ * rottensors_t;
         labXYZ_rot = reshape(labXYZ_rot', 3, [])';
     end
+end
 
-    if (~freevec)
-        ones_out = ones(size(labXYZ_rot, 1), 1);
-        % Set offset back to get rotated vector
-        labXYZ_rot = labXYZ_rot + labgeo.rotpos(ones_out, :) - samgeo.orig(ones_out, :);
-    end
+if (~freevec)
+    ones_out = ones(size(labXYZ_rot, 1), 1);
+    % Set offset back to get rotated vector
+    labXYZ_rot = labXYZ_rot + labgeo.rotpos(ones_out, :) - samgeo.orig(ones_out, :);
 end
 
 samXYZ = labXYZ_rot * lab2sam;
diff --git a/zUtil_Geo/gtGeoSam2Lab.m b/zUtil_Geo/gtGeoSam2Lab.m
index 561ce2443372e7ab68b9fadc322b360b2d6960a4..aa5fa5ffeb889c513d1966f4787e3c8f2bc0aef6 100644
--- a/zUtil_Geo/gtGeoSam2Lab.m
+++ b/zUtil_Geo/gtGeoSam2Lab.m
@@ -81,6 +81,14 @@ end
 % Vectors in Lab reference at the origin before rotation
 labXYZprerot = samXYZ * sam2lab;
 
+ones_in = ones(size(samXYZ, 1), 1);
+
+if (~freevec)
+    % Vectors relative to rot. axis position in Lab reference
+    vv           = samgeo.orig - labgeo.rotpos;
+    labXYZprerot = labXYZprerot + vv(ones_in,:);
+end
+
 if (use_diffractometer)
     if (use_instr_tensor_4x4)
         rottensors = omega;
@@ -90,6 +98,7 @@ if (use_diffractometer)
             'angles_rotation', conf.omega, ...
             'angles_sam_tilt', conf.sample_tilts );
     end
+
     if (conf.element_wise)
         labXYZprerot = permute(labXYZprerot, [2 3 1]);
         labXYZprerot(4, 1, :) = 1;
@@ -108,7 +117,6 @@ if (use_diffractometer)
         labXYZ = reshape(labXYZ, 3, [])';
     end
 else
-    ones_in = ones(size(samXYZ, 1), 1);
 
     % Tensor which rotates with omega from Sample to Lab
     if (use_instr_tensor_3x3)
@@ -123,12 +131,6 @@ else
         rottensors = gtMathsRotationTensor(-omega, rotcomp);
     end
 
-    if (~freevec)
-        % Vectors relative to rot. axis position in Lab reference
-        vv           = samgeo.orig - labgeo.rotpos;
-        labXYZprerot = labXYZprerot + vv(ones_in,:);
-    end
-
     rottensors_t = reshape(rottensors, 3, []);
 
     if (conf.element_wise)
@@ -144,12 +146,12 @@ else
         labXYZ = labXYZprerot * rottensors_t;
         labXYZ = reshape(labXYZ', 3, [])';
     end
+end
 
-    if (~freevec)
-        ones_out = ones(size(labXYZ, 1), 1);
-        % Set offset back
-        labXYZ = labXYZ + labgeo.rotpos(ones_out, :);
-    end
+if (~freevec)
+    ones_out = ones(size(labXYZ, 1), 1);
+    % Set offset back
+    labXYZ = labXYZ + labgeo.rotpos(ones_out, :);
 end
 
 end % of function