diff --git a/matlab/TCV/gdat_tcv.m b/matlab/TCV/gdat_tcv.m
index afc3442924f0e2ed9a5d25e5beba5fc231306985..36d0e0690b848ff3e2546c3bb061a8f9ef5c0fc4 100644
--- a/matlab/TCV/gdat_tcv.m
+++ b/matlab/TCV/gdat_tcv.m
@@ -1310,14 +1310,17 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
        gdat_data.data = gdat_data.gas_flux.data;
        gdat_data.units = gdat_data.gas_flux.units;
        gdat_data.t = gdat_data.gas_flux.t;
+       gdat_data.data_fullpath = gdat_data.gas_flux.data_fullpath;
      case {'gas_request'}
        gdat_data.data = gdat_data.gas_request_volt.data;
        gdat_data.units = gdat_data.gas_request_volt.units;
        gdat_data.t = gdat_data.gas_request_volt.t;
+       gdat_data.data_fullpath = gdat_data.gas_request.data_fullpath;
      case {'gas_feedforward'}
        gdat_data.data = gdat_data.gas_feedforward_volt.data;
        gdat_data.units = gdat_data.gas_feedforward_volt.units;
        gdat_data.t = gdat_data.gas_feedforward_volt.t;
+       gdat_data.data_fullpath = gdat_data.gas_feedforward.data_fullpath;
      case {'gas_valve'}
       if ~isfield(params_eff,'source') || isempty(params_eff.source)
         params_eff.source = {{1,'D2'}, {3,'N2'}};
@@ -1335,15 +1338,16 @@ elseif strcmp(mapping_for_tcv.method,'switchcase')
             if ~strcmp(gdat_data.gas_valve(i).gas_type(end),'2'); gdat_data.gas_valve(i).units = 'atoms/s'; end
             gdat_data.data(:,i) = gdat_data.gas_valve(i).data;
             gdat_data.t = gdat_data.gas_valve(i).t;
-            gdat_data.dim{1}(i) = gdat_data.gas_valve(i).valve_nb;
+            gdat_data.dim{2}(i) = gdat_data.gas_valve(i).valve_nb;
             gdat_data.units{i} = gdat_data.gas_valve(i).units;
             gdat_data.label = [gdat_data.label ',' gdat_data.gas_valve(i).gas_type];
             if i==1
-              gdat_data.dim{2} = gdat_data.t;
-              gdat_data.dimunits{1} = 'valve nb';
-              gdat_data.dimunits{2} = 's';
-              gdat_data.mapping_for.tcv.gdat_timedim = 2;
-              gdat_data.mapping_for.tcv.timedim = 2;
+              gdat_data.dim{1} = gdat_data.t;
+              gdat_data.dimunits{1} = 's';
+              gdat_data.dimunits{2} = 'valve nb';
+              gdat_data.mapping_for.tcv.gdat_timedim = 1;
+              gdat_data.mapping_for.tcv.timedim = 1;
+              gdat_data.data_fullpath = 'using get_gas_flux(shot,''gdat_params.source{1}'',''gdat_params.source{2}'')';
             end
           catch ME
             gdat_data.gas_valve(i).t = [];
diff --git a/matlab/gdat_plot.m b/matlab/gdat_plot.m
index 91712773388fc0cfcbd62039d06645a6b32a7ee8..5c378833f33ab93b9c8a08694dfd09989c776b67 100644
--- a/matlab/gdat_plot.m
+++ b/matlab/gdat_plot.m
@@ -58,17 +58,17 @@ if all(isfield(gdat_data,{'data','t'})) && ~isempty(gdat_data.data) && ~isempty(
     if iscell(gdat_data.eqdsk); endstr = '{1}'; end
     eval(['contour(gdat_data.eqdsk' endstr '.rmesh,gdat_data.eqdsk' endstr '.zmesh,gdat_data.eqdsk' endstr '.psi'',100);'])
     hold on
-    eval(['linehandles(end+1) = plot(gdat_data.eqdsk' endstr '.rplas,gdat_data.eqdsk' endstr '.zplas,''k'');'])
-    eval(['linehandles(end+1) = plot(gdat_data.eqdsk' endstr '.rlim,gdat_data.eqdsk' endstr '.zlim,''k'');'])
+    eval(['linehandles{end+1} = plot(gdat_data.eqdsk' endstr '.rplas,gdat_data.eqdsk' endstr '.zplas,''k'');'])
+    eval(['linehandles{end+1} = plot(gdat_data.eqdsk' endstr '.rlim,gdat_data.eqdsk' endstr '.zlim,''k'');'])
     axis equal;
     title(eval(['gdat_data.eqdsk' endstr '.stitle']));
   elseif any(find(size(gdat_data.data)==length(gdat_data.t)))
     try
       if length(size(gdat_data.data))<=2
         if isnumeric(gdat_data.t)
-          linehandles(end+1) = plot(gdat_data.t,gdat_data.data);
+          linehandles{end+1} = plot(gdat_data.t,gdat_data.data);
         elseif iscell(gdat_data.t)
-          linehandles(end+1) = plot(str2num(cell2mat(gdat_data.t)),gdat_data.data);
+          linehandles{end+1} = plot(str2num(cell2mat(gdat_data.t)),gdat_data.data);
         end
       else
         disp('WARNING')
@@ -123,10 +123,14 @@ if all(isfield(gdat_data,{'data','t'})) && ~isempty(gdat_data.data) && ~isempty(
     end
     zoom on;
   end
+  maxnblines = 1;
   for i=1:numel(linehandles)
-    set(linehandles(i),'DisplayName',num2str(gdat_data.shot));
+    maxnblines = max(maxnblines,numel(linehandles{i}));
+    for j=1:numel(linehandles{i})
+      set(linehandles{i}(j),'DisplayName',[num2str(gdat_data.shot) ',' num2str(j)]);
+    end
   end
-  legend show
+  if maxnblines==1; legend show; end
   if strcmp(gdat_data.gdat_request,'mhd')
     % special case, add legend instead of ylabel
     delete(hylabel);