diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m
index ff2e7d3a251ed2cea85c25abec6529035c44c8b9..f8ae59eba5d7d949e190a73705e5fad5fe66146d 100644
--- a/crpptbx/TCV/gdat_tcv.m
+++ b/crpptbx/TCV/gdat_tcv.m
@@ -328,7 +328,7 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi')
     end
     aatmp=eval(eval_expr);
   end
-  if isempty(aatmp.data) || isempty(aatmp.dim) % || ischar(aatmp.data) (to add?)
+  if isempty(aatmp.data) || (isempty(aatmp.dim) && ischar(aatmp.data) && findstr(lower(aatmp.data),'no data'))% || ischar(aatmp.data) (to add?)
     if (gdat_params.nverbose>=1); warning(['problems loading data for ' eval_expr ' for data_request= ' data_request_eff]); end
     if (gdat_params.nverbose>=3); disp('check .gdat_request list'); end
     return
@@ -359,7 +359,7 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi')
     if mapping_for_tcv.timedim==-1
       % assume last one except if of length 1
       mapping_for_tcv.timedim = nbdims;
-      if (size(gdat_data.data,nbdims)==1 && nbdims>1); mapping_for_tcv.timedim = nbdims-1; end
+      if (nbdims>1 && size(gdat_data.data,nbdims)==1); mapping_for_tcv.timedim = nbdims-1; end
     end
   end
   dim_nontim = setdiff([1:nbdims],mapping_for_tcv.timedim);
@@ -371,7 +371,7 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi')
       gdat_data.x = gdat_data.dim(dim_nontim);
     end
   end
-  gdat_data.t = gdat_data.dim{mapping_for_tcv.timedim};
+  if mapping_for_tcv.timedim>0; gdat_data.t = gdat_data.dim{mapping_for_tcv.timedim}; end
   gdat_data.units = aatmp.units;
   gdat_data.dimunits = aatmp.dimunits;
   if mapping_for_tcv.gdat_timedim>0 && mapping_for_tcv.gdat_timedim ~= mapping_for_tcv.timedim