diff --git a/matlab/IMAS/gdat_imas.m b/matlab/IMAS/gdat_imas.m
index 0e2cf4d7512f4d98717b814edefc5fb629813db3..49722c68b2d4c4eb031b8ecaf499b9982d377a16 100644
--- a/matlab/IMAS/gdat_imas.m
+++ b/matlab/IMAS/gdat_imas.m
@@ -438,7 +438,7 @@ elseif strcmp(mapping_for_imas.method,'switchcase')
     for i=1:length(ids_top_names)
       ids_top_name = ids_top_names{i};
       if ids_gen_ok
-	ids_empty = ids_gen(ids_top_name); % generate ids from gateway function ids_gen
+	ids_empty = ids_gen(ids_top_name); % generate ids from ids_gen
       else
 	% load empty ids structure from template file
 	fname = sprintf('ids_empty_%s',ids_top_name);
@@ -469,6 +469,7 @@ elseif strcmp(mapping_for_imas.method,'switchcase')
 	  gdat_data.(ids_top_name) = ids_top;
 	else
 	  gdat_data.(ids_top_name) = ids_empty;
+	  return
 	end
       catch ME_imas_ids_get
 	disp(['there is a problem with: imas_get_ids_' ids_top_name ...
diff --git a/matlab/TCV/gdat_tcv.m b/matlab/TCV/gdat_tcv.m
index d716210ccd3c8e529bfa4057f52d80f64dd9c6a0..796f3c0e1e5a39d7c799a6f5713d83a531ba178a 100644
--- a/matlab/TCV/gdat_tcv.m
+++ b/matlab/TCV/gdat_tcv.m
@@ -140,7 +140,11 @@ if nargin>=1
   if isempty(shot)
     % means mdsopen(shot) already performed or not shot asked for
     try
-      shot_mds = mdsipmex(2,'$SHOT');
+      if ~mdsremotelist
+	shot_mds = shot;
+      else
+	shot_mds = mdsipmex(2,'$SHOT');
+      end
     catch
       shot_mds = shot;
     end
@@ -150,14 +154,20 @@ if nargin>=1
     if ischar(shot) || isempty(shot)
       if gdat_params.nverbose>=1
         if isstruct(data_request) && isfield(data_request,'data_request')
-          warning(['shot cannot be opened with ' data_request.data_request]);
-        elseif ischar(data_request)
-          warning(['shot cannot be opened with ' data_request]);
+	  if ~strcmp(data_request.data_request,'ids')
+	    warning(['shot cannot be opened with ' data_request.data_request]);
+	    return
+	  end
+        elseif ischar(data_request) 
+	  if ~strcmp(data_request,'ids')
+	    warning(['shot cannot be opened with ' data_request]);
+	    return
+	  end
         else
           warning(['shot cannot be opened']);
+	  return
         end
       end
-      if ~strcmp(data_request,'ids'); return; end % empty shot return empty ids so valid command
     end
   elseif isnumeric(shot)
     gdat_data.shot = shot;