diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m
index 381e67ba64298f28b3d01a3d64f90d131ac52a5d..8d3e14cb54ad78ab71fc0039d0c3a4c50ea1bbc6 100644
--- a/crpptbx/TCV/gdat_tcv.m
+++ b/crpptbx/TCV/gdat_tcv.m
@@ -195,10 +195,14 @@ else
 end
 
 % extract parameters from pairs of varargin:
+i_liuqe_set_in_pairs = 0; % to know if liuqe was not set explicitely thus use value in expression later
 if (nargin>=ivarargin_first_char)
   if mod(nargin-ivarargin_first_char+1,2)==0
     for i=1:2:nargin-ivarargin_first_char+1
       if ischar(varargin_eff{i})
+        if strcmp(varargin_eff{i},'liuqe')
+          i_liuqe_set_in_pairs = 1;
+        end
         % enforce lower case for any character driven input
         if ischar(varargin_eff{i+1}) && ~strcmp('path',varargin_eff{i})
           gdat_params.(lower(varargin_eff{i})) = lower(varargin_eff{i+1});
@@ -376,9 +380,40 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi')
           ichar_after_liuqe = 7;
           if strcmp(mapping_for_tcv.expression(ij+ichar_after_liuqe),'2') || ...
                 strcmp(mapping_for_tcv.expression(ij+ichar_after_liuqe),'3')
+            if i_liuqe_set_in_pairs==0
+              gdat_params.liuqe = str2num(mapping_for_tcv.expression(ij+ichar_after_liuqe));
+              gdat_data.gdat_params = gdat_params;
+              substr_liuqe_tcv_eq = mapping_for_tcv.expression(ij+ichar_after_liuqe);
+            end
             ichar_after_liuqe = 8;
           end
           mapping_for_tcv.expression = [mapping_for_tcv.expression(1:ij+6) substr_liuqe_tcv_eq mapping_for_tcv.expression(ij+ichar_after_liuqe:end)];
+        else
+          % check if liuqe, liuqe2 or liuqe3 is given in expression
+          ij = regexpi(mapping_for_tcv.expression,'LIUQE[^\.]','once');
+          if ~isempty(ij)
+            ichar_after_liuqe = 5;
+            if strcmp(mapping_for_tcv.expression(ij+ichar_after_liuqe),'2') || ...
+                  strcmp(mapping_for_tcv.expression(ij+ichar_after_liuqe),'3')
+              if i_liuqe_set_in_pairs==0
+                gdat_params.liuqe = 10+str2num(mapping_for_tcv.expression(ij+ichar_after_liuqe));
+                gdat_data.gdat_params = gdat_params;
+                substr_liuqe_tcv_eq = mapping_for_tcv.expression(ij+ichar_after_liuqe);
+              end
+              ichar_after_liuqe = 6;
+            else
+              if i_liuqe_set_in_pairs==0
+                gdat_params.liuqe = 11;
+                gdat_data.gdat_params = gdat_params;
+                substr_liuqe_tcv_eq = '';
+              end
+            end
+            if i_liuqe_set_in_pairs==1 && liuqe_matlab==1
+              % enforce matlab liuqe version even matlab if asked for
+              substr_liuqe_tcv_eq = ['.M' substr_liuqe_tcv_eq];
+            end
+            mapping_for_tcv.expression = [mapping_for_tcv.expression(1:ij+4) substr_liuqe_tcv_eq mapping_for_tcv.expression(ij+ichar_after_liuqe:end)];
+          end
         end
       else
         ij = regexpi(mapping_for_tcv.expression,'LIUQE.*\.M','once');
@@ -474,6 +509,7 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi')
     mapping_for_tcv.gdat_timedim = mapping_for_tcv.timedim;
   end
   gdat_data.data_fullpath=[mapping_for_tcv.expression];
+  gdat_data.label=[mapping_for_tcv.expression];
   gdat_data.help = aatmp.help;
 
   % end of method "tdi"