diff --git a/matlab/AUG/gdat_aug.m b/matlab/AUG/gdat_aug.m
index 9cf69c6fca35670c3579d9c352d382b63e7b00ff..1b9a19ee3239718a3b75bab2ca3795cca0fe156f 100644
--- a/matlab/AUG/gdat_aug.m
+++ b/matlab/AUG/gdat_aug.m
@@ -345,11 +345,35 @@ if strcmp(mapping_for_aug.method,'signal')
   if isfield(aatmp,'data'); gdat_data.data = aatmp.data; end
   if isfield(aatmp,'t'); gdat_data.t = aatmp.t; end
   if isfield(aatmp,'x'); gdat_data.x = aatmp.x; end
+  if isfield(aatmp,'dim'); gdat_data.dim = aatmp.dim; end
   if isfield(aatmp,'dimunits'); gdat_data.dimunits = aatmp.dimunits; end
   gdat_data.data_fullpath=mapping_for_aug.expression;
   if isempty(aatmp.data) || (isempty(gdat_data.t) && isempty(gdat_data.x))
     return
   end
+  % construct .dim if not present (means coming from sf2sig)
+  if ~isfield(aatmp,'dim')
+    len_t = numel(aatmp.t);
+    len_x = numel(aatmp.x);
+    len_data= size(aatmp.data);
+    itime = find(len_data==len_t);
+    nbdims_eff = sum([size(gdat_data.data)~=1]);
+    aatmp.dim{itime} = aatmp.t;
+    aatmp.dimunits{itime} = aatmp.time_aug.unit;
+    if nbdims_eff >= 2
+      % assume area-base is main 2nd coordinate (did not find a case with 2 area-base (2 coordinates defined in addition to time) to be able to test)
+      i_x = setdiff([1:2],itime);
+      aatmp.dim{i_x} = aatmp.x;
+      aatmp.dimunits(i_x) = aatmp.area.unit;
+      if isempty(aatmp.dimunits{i_x}); aatmp.dimunits{i_x} = ''; end
+      for i=3:nbdims_eff
+        aatmp.dim{i} = [1:size(aatmp.data,i)];
+        aatmp.dimunits{i} = '';
+      end
+    end
+    gdat_data.dim = aatmp.dim;
+    gdat_data.dimunits = aatmp.dimunits;
+  end
   mapping_for_aug_timedim_orig = mapping_for_aug.timedim;
   if mapping_for_aug.timedim<=0
     % need to guess timedim
@@ -404,7 +428,6 @@ if strcmp(mapping_for_aug.method,'signal')
         gdat_data.t = gdat_data.dim{mapping_for_aug.timedim};
         adata = gdat_data.data;
         gdat_data.data = permute(adata,[2 1 3:numel(size(adata))]);
-
       end
     end
   end
diff --git a/matlab/AUG/rdaAUG_eff.m b/matlab/AUG/rdaAUG_eff.m
index ddbc37e2a80aae27839f6e74a42e9cd87023df3d..41ac8b710e6f5d989c48f00273981abd5c2ae076 100644
--- a/matlab/AUG/rdaAUG_eff.m
+++ b/matlab/AUG/rdaAUG_eff.m
@@ -116,7 +116,6 @@ if nargin_eff>=7 && ~isempty(varargin_eff{3}) && ischar(varargin_eff{3}) ...
     time_base_name=varargin_eff{3}(ij(1)+1:end);
   end
 end
-
 did_transpose = 0;
 if usemdsplus
   % a_remote=mdsremotelist; does not seem sufficient if connection broken, test with 1+2
@@ -476,6 +475,18 @@ end
 
 adata.value = adata.data;
 
+% make sure orientation of .x maps 1st 2 dims if 2D
+if sum([size(adata.x)~=1]) == 2 && sum([size(adata.data)~=1]) >= 2
+  if size(adata.x,1)==size(adata.data,2) && size(adata.x,2)==size(adata.data,1)
+    adata.x = adata.x';
+    if isfield(adata,'dim')
+      for i=1:numel(adata.dim)
+        if isequal(adata.dim{i}',adata.x); adata.dim{i} = adata.x; end
+      end
+    end
+  end
+end
+  
 if strcmp(upper(sigtype),'PNIQ')
   % transform 4x2 PINIs in 1:8 PINIs and total in index=9
   if (prod(size(adata.data))/length(adata.t) == 8)