diff --git a/crpptbx/TCV_IMAS/tcv2ids.m b/crpptbx/TCV_IMAS/tcv2ids.m
index 4e2988ac5c5c98f5aaf951172a89a587c937d3a5..f4e1e2f273c59284b6dd0f8cb8ecb8a34f6542b1 100644
--- a/crpptbx/TCV_IMAS/tcv2ids.m
+++ b/crpptbx/TCV_IMAS/tcv2ids.m
@@ -1,6 +1,6 @@
 function [ids_saved,varargout] = tcv2ids(shot,run,varargin);
 %
-%   [ids_saved,varargout] = TCV2ids(shot,run,varargin);
+%   [ids_saved,varargout] = tcv2ids(shot,run,varargin);
 %
 % Assumes you have done: 
 % >> addpath ~g2osaute/public/matlab9_11_2016 (on the gateway)
@@ -79,7 +79,7 @@ end
 for i=1:length(params_tcv2ids.ids_names)
   ids_to_get = params_tcv2ids.ids_names{i};
   ids_empty=ids_gen(ids_to_get);
-  tmp = gdat(shot,'ids','source',ids_to_get);
+  tmp = gdat(shot,'ids','source',ids_to_get,'machine','tcv');
   ids_saved.(ids_to_get) = tmp.(ids_to_get);
   ids_saved.([ids_to_get '_description']) = tmp.([ids_to_get '_description']);
 end
@@ -106,5 +106,6 @@ if nargout>=2
     ids_to_get = params_tcv2ids.ids_names{i};
     varargout{1}.ids{i} = ids_saved.(ids_to_get);
     varargout{1}.idsname{i} = ids_to_get;
+    varargout{1}.ids{i}.idsname = ids_to_get;
   end
 end
diff --git a/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m b/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m
index 7697080eee50e2856cf04b1bd7f0014830101ebb..e4ce49544816d1fbfb751d86044b7bd4a6581880 100644
--- a/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m
+++ b/crpptbx/TCV_IMAS/tcv_get_ids_equilibrium.m
@@ -1,6 +1,6 @@
 function [ids_equilibrium,ids_equilibrium_description,varargout] = tcv_get_ids_equilibrium(shot,ids_equil_empty,varargin);
 %
-%  [ids_equilibrium,ids_equilibrium_description,varargout] = get_ids_equilibrium_fixed_boundary(shot,varargin);
+%  [ids_equilibrium,ids_equilibrium_description,varargout] = tcv_get_ids_equilibrium(shot,ids_equil_empty,varargin);
 % 
 %
 
@@ -259,7 +259,7 @@ profiles_2d.grid_type.description = 'Cylindrical R,Z ala eqdsk';
 % j_parallel = gdat(params_equilibrium.shot,'j_parallel');
 % j_tor = gdat(params_equilibrium.shot,'j_tor');
 % phi = gdat(params_equilibrium.shot,'phi');
-profiles_2d.psi = gdat(params_equilibrium.shot,'psi');
+profiles_2d.psi = gdat(params_equilibrium.shot,'psi'); % add psi_bound in a second step in special cases
 % r = gdat(params_equilibrium.shot,'r'); % not to be filled since in grid.dim1
 % theta = gdat(params_equilibrium.shot,'theta');
 % z = gdat(params_equilibrium.shot,'z'); % not to be filled since in grid.dim2
@@ -271,7 +271,7 @@ for it=1:length(ids_equilibrium.time)
     if ~any(strcmp(profiles_2d_fieldnames{i},special_fields))
       if ~isstruct(ids_equilibrium.time_slice{it}.profiles_2d{1}.(profiles_2d_fieldnames{i}))
         if ~ischar(profiles_2d.(profiles_2d_fieldnames{i}).data) && ~isempty(profiles_2d.(profiles_2d_fieldnames{i}).data) ...
-              && size(profiles_2d.(profiles_2d_fieldnames{i}).data,2)>=it
+              && size(profiles_2d.(profiles_2d_fieldnames{i}).data,3)>=it
           ids_equilibrium.time_slice{it}.profiles_2d{1}.(profiles_2d_fieldnames{i}) = ...
               profiles_2d.(profiles_2d_fieldnames{i}).data(:,:,it);
         end
@@ -289,4 +289,6 @@ for it=1:length(ids_equilibrium.time)
   ids_equilibrium.time_slice{it}.profiles_2d{1}.grid_type.description = profiles_2d.grid_type.description;
   ids_equilibrium.time_slice{it}.profiles_2d{1}.grid.dim1 = profiles_2d.psi.dim{1};
   ids_equilibrium.time_slice{it}.profiles_2d{1}.grid.dim2 = profiles_2d.psi.dim{2};
+  ids_equilibrium.time_slice{it}.profiles_2d{1}.psi(:,:) = ids_equilibrium.time_slice{it}.profiles_2d{1}.psi(:,:) + ...
+      global_quantities.psi_boundary.data(it);
 end