diff --git a/crpptbx/AUG/gdat_aug.m b/crpptbx/AUG/gdat_aug.m
index 823f1f9de638e43528a18c0ec8e22d2d6a19630c..ed1322890dbb89fa02283479b8f2506d89d186af 100644
--- a/crpptbx/AUG/gdat_aug.m
+++ b/crpptbx/AUG/gdat_aug.m
@@ -69,7 +69,8 @@ function [gdat_data,gdat_params,error_status,varargout] = gdat_aug(shot,data_req
 %   1) in one unix session do: ssh osauter@gate1.aug.ipp.mpg.de ; then connect to sxaug31: ssh -X sxaug31; then execute startmds and leave window
 %   2) in another unix session connect to mds server through gate1: ssh -losauter -L 8002:sxaug31.aug.ipp.mpg.de:8001 gate1.aug.ipp.mpg.de
 %   3) in your local session in matlab do: >> mdsconnect('localhost:8002') (and verify with >> mdsvalue('1+2')
-
+%
+%  ssh -losauter -L 8001:lxmdsplus.aug.ipp.mpg.de:8000 gate1.aug.ipp.mpg.de
 %
 % Comments for local developer:
 % This gdat is just a "header routine" calling the gdat for the specific machine gdat_`machine`.m which can be called
@@ -957,7 +958,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase')
       Rinv.value=[]; R2inv.value=[]; Bave.value=[]; B2ave.value=[]; FTRA.value=[];
     end
     [LPFx,e]=rdaAUG_eff(shot,DIAG,'LPFx',exp_name_eff,[],gdat_data.gdat_params.extra_arg_sf2sig);
-    LPFx.value=LPFx.value(1:NTIME); LPFx.data=LPFx.value; LPFx.t=LPFx.t(1:NTIME);
+    LPFx.value=LPFx.value(1:NTIME); LPFx.data=LPFx.value(1:NTIME); LPFx.t=LPFx.t(1:NTIME);
     [PFxx,e]=rdaAUG_eff(shot,DIAG,'PFxx',exp_name_eff,[],gdat_data.gdat_params.extra_arg_sf2sig);
     PFxx=adapt_rda(PFxx,NTIME,max(LPFx.value)+1,itotransposeback);
     [RPFx,e]=rdaAUG_eff(shot,DIAG,'RPFx',exp_name_eff,[],gdat_data.gdat_params.extra_arg_sf2sig);
@@ -2073,7 +2074,7 @@ elseif strcmp(mapping_for_aug.method,'switchcase')
         gdat_data.units = ' ';
       end
      case {'rhotor', 'rhotor_edge', 'rhotor_norm'}
-      b0=gdat(shot,'b0');
+      b0=gdat_aug(shot,'b0');
       gdat_data.b0 = interpos(b0.t,b0.data,gdat_data.t,-1);
       for it=1:NTIME
         Lpf1 = Lpf1_t(it);
diff --git a/crpptbx/AUG/rdaAUG_eff.m b/crpptbx/AUG/rdaAUG_eff.m
index d1a0d91f5f16bee16bb7985c8c3b19812e7f3bf9..776a5b00769239852eb5fb09e87056b3b1072cc5 100644
--- a/crpptbx/AUG/rdaAUG_eff.m
+++ b/crpptbx/AUG/rdaAUG_eff.m
@@ -189,13 +189,30 @@ if usemdsplus
     end
 
   end
-  if error < 10
-    adata.data=data;
+  adata.data=data;
+  if exist('ed_number')
     adata.edition_in = str2num(ed_number);
-    adata.edition_out = mdsvalue(['_oed' user diagname]);
-  else
-    if error~=11 && mod(error,2)==1; keyboard; end
   end
+  adata.edition_out = mdsvalue(['_oed' user diagname]);
+  if mod(error,2)==2; keyboard; end
+  % begin some fix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  % fix some problems (seems not needed anymore with lxmdsplus.aug.ipp.mpg.de, but do with mdsplus.aug.ipp.mpg.de (so leave for some timing tests)
+  nb_surfaces_m1 = 40;
+  nb_xpoints_m1 = 4;
+  if strcmp(sigtype,'Lpf')
+    if (min(adata.data)<100000+3 && min(adata.data)~=0) || max(adata.data)>100000*20
+      keyboard
+      disp(['seems to be a problem with Lpf assume 1 sol point and ' num2str(nb_surfaces_m1+1) ' surfaces'])
+      adata.data(:) = 100000 + nb_surfaces_m1;
+    end
+  end
+  if strcmp(sigtype,'LPFx')
+    if (min(adata.data)<1 && min(adata.data)~=0) || max(adata.data)>1000
+      disp(['seems to be a problem with LPFx assume ' num2str(nb_xpoints_m1+1) ' special X-points'])
+      adata.data(:) = nb_xpoints_m1;
+    end
+  end
+  % end of some fix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
   hsig=[];
   ss=size(data);
@@ -212,6 +229,7 @@ if usemdsplus
       eval(['time=mdsvalue(''dim_of(_rdaeff' user diagname ',' num2str(idim0) ')'');']);
       if numel(time) ~= numel(adata.data)
         warning(['problem with dim for: ' diagname ', ' sigtype])
+        keyboard
       end
     end
     time = reshape(time,1,length(time));
diff --git a/crpptbx/AUG_IMAS/aug_get_ids_equilibrium.m b/crpptbx/AUG_IMAS/aug_get_ids_equilibrium.m
index e931cbb306a3f8f213e3134fc49af091f60b6b21..077554d3ae9428e553cd6f257e508a254eaecfe1 100644
--- a/crpptbx/AUG_IMAS/aug_get_ids_equilibrium.m
+++ b/crpptbx/AUG_IMAS/aug_get_ids_equilibrium.m
@@ -146,20 +146,20 @@ boundary.triangularity_upper = gdat(params_equilibrium.shot,'delta_top','machine
 boundary_desc.triangularity_upper = 'delta_top';
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % TCV LIUQE specific, to deal later...
-temp.n_x_point = gdat(params_equilibrium.shot,'tcv_eq(''''n_xpts'''',''''liuqe.m'''')','machine',machine);
-temp_desc.n_x_point = '''tcv_eq(''''n_xpts'''',''''liuqe.m'''')''';
-temp.r_x_point = gdat(params_equilibrium.shot,'tcv_eq(''''r_xpts'''',''''liuqe.m'''')','machine',machine);
-temp_desc.r_x_point = '''tcv_eq(''''r_xpts'''',''''liuqe.m'''')''';
-temp.z_x_point = gdat(params_equilibrium.shot,'tcv_eq(''''z_xpts'''',''''liuqe.m'''')','machine',machine);
-temp_desc.z_x_point = '''tcv_eq(''''z_xpts'''',''''liuqe.m'''')''';
+% $$$ temp.n_x_point = gdat(params_equilibrium.shot,'tcv_eq(''''n_xpts'''',''''liuqe.m'''')','machine',machine);
+% $$$ temp_desc.n_x_point = '''tcv_eq(''''n_xpts'''',''''liuqe.m'''')''';
+% $$$ temp.r_x_point = gdat(params_equilibrium.shot,'tcv_eq(''''r_xpts'''',''''liuqe.m'''')','machine',machine);
+% $$$ temp_desc.r_x_point = '''tcv_eq(''''r_xpts'''',''''liuqe.m'''')''';
+% $$$ temp.z_x_point = gdat(params_equilibrium.shot,'tcv_eq(''''z_xpts'''',''''liuqe.m'''')','machine',machine);
+% $$$ temp_desc.z_x_point = '''tcv_eq(''''z_xpts'''',''''liuqe.m'''')''';
 temp.rgeom = gdat(params_equilibrium.shot,'rgeom','machine',machine);
 temp_desc.rgeom = 'rgeom';
 temp.zgeom = gdat(params_equilibrium.shot,'zgeom','machine',machine);
 temp_desc.zgeom = 'zgeom';
-temp.r_lcfs = gdat(params_equilibrium.shot,'r_contour_edge','machine',machine);
-temp_desc.r_lcfs = 'r_contour_edge';
-temp.z_lcfs = gdat(params_equilibrium.shot,'z_contour_edge','machine',machine);
-temp_desc.z_lcfs = 'z_contour_edge';
+% $$$ temp.r_lcfs = gdat(params_equilibrium.shot,'r_contour_edge','machine',machine);
+% $$$ temp_desc.r_lcfs = 'r_contour_edge';
+% $$$ temp.z_lcfs = gdat(params_equilibrium.shot,'z_contour_edge','machine',machine);
+% $$$ temp_desc.z_lcfs = 'z_contour_edge';
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 temp_2d.equil = gdat(params_equilibrium.shot,'equil','machine',machine);
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_tf.m b/crpptbx/TCV_IMAS/tcv_get_ids_tf.m
index 4804f0fcc74ce412388b21aac1cd8da8b0d4e66d..d690bbde030ae569530c5e0bf1ca783611e8cec6 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_tf.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_tf.m
@@ -11,13 +11,13 @@ ids_tf_out = ids_tf_empty;
 
 [ids_tf_out, params_tf] = tcv_ids_headpart(shot, ids_tf_empty,'tf','homogeneous_time',0,varargin{:});
 
-tmp = gdat(shot, 'b0');
+tmp = gdat_tcv(shot, 'b0');
 if ~ischar(tmp.data)
   ids_tf_out.b_field_tor_vacuum_r.data = tmp.data; 
   ids_tf_out.b_field_tor_vacuum_r.time = tmp.t;
   ids_tf_out.r0 = tmp.r0;
-  ids_tf_out_description.b_field_tor_vacuum_r.data = ' gdat(shot, ''b0'')';
-  ids_tf_out_description.r0 = ' b0.r0 from gdat(shot, ''b0'')';
+  ids_tf_out_description.b_field_tor_vacuum_r.data = ' gdat_tcv(shot, ''b0'')';
+  ids_tf_out_description.r0 = ' b0.r0 from gdat_tcv(shot, ''b0'')';
 else
   % leave defaults
   ids_tf_out_description = struct([]);