diff --git a/matlab/utilities/dseries/from.m b/matlab/utilities/dseries/from.m
index ab54de128b381e80fbc51e6bf21ce7eb2a457884..42ef92077db99792b1104d51fd6ccc95df0163c2 100644
--- a/matlab/utilities/dseries/from.m
+++ b/matlab/utilities/dseries/from.m
@@ -141,6 +141,9 @@ end
 % Set the number of variables
 number_of_variables = size(leadlagtable,1);
 
+% Initialize a cell array containing the names of the variables.
+variable_names = cell(1);
+
 % Test that all the involved variables are available dseries objects. Also check that
 % these time series are defined over the time range given by d1 and d2 (taking care of
 % the lags and leads) and check that each object is a singleton
@@ -162,6 +165,15 @@ for i=1:number_of_variables
             msg = sprintf('dseries::from: Object %s must contain only one variable!\n',current_variable);
             error(msg)
         end
+        if i>1
+            if ismember(var.name,variable_names)
+                error('dseries::from: All the dseries objects should contain variables with different names!')
+            else
+                variable_names(i) = {var.name{1}};
+            end
+        else
+            variable_names(i) = {var.name{1}};
+        end
         if d1<var.dates(1)+leadlagtable{i,2}
             msg = sprintf('dseries::from: Initial date of the loop (%s) is inconsistent with %s''s range!\n',char(d1),current_variable);
             msg = [msg, sprintf('               Initial date should be greater than or equal to %s.',char(var.dates(1)+leadlagtable{i,2}))];
@@ -221,11 +233,7 @@ list_of_variables = leadlagtable{1,1};
 for i=2:number_of_variables
    list_of_variables = [list_of_variables, ',' leadlagtable{i,1}];
 end
-try
-    eval(sprintf('tmp = [%s];', list_of_variables));
-catch
-    error('dseries::from: All the dseries objects should contain variables with different names!')
-end
+eval(sprintf('tmp = [%s];', list_of_variables));
 
 % Get base time index
 t1 = find(d1==tmp.dates);