diff --git a/crpptbx/TCV/loadTCVdata.m b/crpptbx/TCV/loadTCVdata.m
index 9c3ef9967848efc1a4933eac1a7decd7868d0d82..b87b6c909575835b9fa75bd2a750b23a75068d1a 100644
--- a/crpptbx/TCV/loadTCVdata.m
+++ b/crpptbx/TCV/loadTCVdata.m
@@ -635,7 +635,7 @@ switch TCVkeywrdcase{index}
     if strcmp(TCVkeywrdcase{index},'nerho_edge')
       nodenameeff='\results::thomson.edge:ne';
       tracetdi=tdi(nodenameeff);
-      if isempty(tracetdi.data)
+      if isempty(tracetdi.data) || ischar(tracetdi.data)
         ishot=mdsopen(shot)
         tracetdi=tdi(nodenameeff)
       end
@@ -643,15 +643,19 @@ switch TCVkeywrdcase{index}
       tracestd=tdi('\results::thomson.edge:ne:error_bar');
       if shot>=23801
         tracefirrat=tdi('\results::thomson.profiles.auto:fir_thom_rat'); %time base not same!!
-        if isempty(tracefirrat.data)
+        if isempty(tracefirrat.data) || ischar(tracefirrat.data)
           disp('problem with \results::thomson.profiles.auto:fir_thom_rat: empty')
         end
       else
         tracefirrat=tdi('\results::thomson.edge:fir_thom_rat');
         tracefirrat.dim{1}=time;
       end
-      tracefirrat_data=NaN*ones(size(tracetdi.dim{1}));
-      if ~isempty(tracefirrat.data)
+      if ~isempty(tracetdi.dim)
+        tracefirrat_data=NaN*ones(size(tracetdi.dim{1}));
+      else
+        tracefirrat_data=[];
+      end
+      if ~isempty(tracefirrat.data) && ~ischar(tracefirrat.data)
         itim=iround(time,tracefirrat.dim{1});
         tracefirrat_data(itim)=tracefirrat.data;
       end
@@ -661,7 +665,7 @@ switch TCVkeywrdcase{index}
       nodenameeff='\results::thomson.edge:te; error_bar';
       tracestd=tdi('\results::thomson.edge:te:error_bar');
     end
-    trace.data=tracetdi.data'; % Thomson.Edge data as (t,z)
+    if ~ischar(tracetdi.data); trace.data=tracetdi.data'; end % Thomson.Edge data as (t,z)
     trace.std=tracestd.data';
     if strcmp(TCVkeywrdcase{index},'nerho')
       trace.firrat=tracefirrat_data;