diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m
index b0992745f023aee98f6ae2cf8ea09874c62909cf..9218a6be40cee9ce7e48010644ac5af650916632 100644
--- a/crpptbx/TCV/gdat_tcv.m
+++ b/crpptbx/TCV/gdat_tcv.m
@@ -454,15 +454,19 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
     % compute average minor or major radius (on z=zaxis normally)
     nodenameeff=['\results::r_max_psi' substr_liuqe];
     rmaxpsi=tdi(nodenameeff);
-    if isempty(rmaxpsi.data) || isempty(rmaxpsi.dim) || any(~any(~isnan(rmaxpsi.data))) % || ischar(rmaxpsi.data) (to add?)
+    ijnan = find(isnan(rmaxpsi.data));
+    if isempty(rmaxpsi.data) || isempty(rmaxpsi.dim) || ischar(rmaxpsi.data) || ...
+          ( ~isempty(ijnan) && prod(size(ijnan))==prod(size(rmaxpsi.data)) )
       if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end
       if (gdat_params.nverbose>=3); disp(['rerun LIUQE?']); end
       return
     end   
     nodenameeff2=['\results::r_min_psi' substr_liuqe];
     rminpsi=tdi(nodenameeff2);
-    if isempty(rminpsi.data) || isempty(rminpsi.dim) || any(~any(~isnan(rminpsi.data))) % || ischar(rminpsi.data) (to add?)
-      if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff ' for data_request= ' data_request_eff]); end
+    ijnan = find(isnan(rminpsi.data));
+    if isempty(rminpsi.data) || isempty(rminpsi.dim) || ...
+          ( ~isempty(ijnan) && prod(size(ijnan))==prod(size(rminpsi.data)) )
+      if (gdat_params.nverbose>=1); warning(['problems loading data for ' nodenameeff2 ' for data_request= ' data_request_eff]); end
       if (gdat_params.nverbose>=3); disp(['rerun LIUQE?']); end
       return
     end