diff --git a/+quantity/Symbolic.m b/+quantity/Symbolic.m
index c451ca5e79ebb33d5bab0bf696e8dea54a98dd4d..12d00ebeb8f57292b6ccb7fc3b84d10e6d2bdcda 100644
--- a/+quantity/Symbolic.m
+++ b/+quantity/Symbolic.m
@@ -313,7 +313,7 @@ classdef Symbolic < quantity.Function
 				
 				resultingName = [newDomain.name];
 				for it = 1 : numel(gridName2ReplaceSymbolicOld)
-					resultingName(strcmp(resultingName, gridName2ReplaceSymbolicOld(it))) ...
+					resultingName(strcmp([newDomain.name], gridName2ReplaceSymbolicOld(it))) ...
 						= gridName2ReplaceSymbolicNew(it);
 				end % for it = 1 : numel(gridName2ReplaceSymbolicOld)
 				if misc.isunique(resultingName)
diff --git a/+unittests/+quantity/testSymbolic.m b/+unittests/+quantity/testSymbolic.m
index c065cb61ce757996e95a3628a72e6cf806b15f40..f771ef4343871305d5382af99a72b6732cb7fcc9 100644
--- a/+unittests/+quantity/testSymbolic.m
+++ b/+unittests/+quantity/testSymbolic.m
@@ -870,8 +870,12 @@ end
 
 function testSubs3(tc)
 	zZeta = [quantity.Domain("z", linspace(0, 1, 11)), quantity.Domain("zeta", linspace(0, 1, 11))];
-	Id = quantity.Symbolic(eye(2), zZeta);
-	tc.verifyEqual(Id.subs("z", 1).on(), Id.subs("z", "zeta").on(), 'AbsTol', 10*eps);
+	Id = quantity.Symbolic([sym("z"), 1; 2 sym("zeta")], zZeta);
+	Id_z1 = quantity.Symbolic([1, 1; 2 sym("zeta")], zZeta.find("zeta"));
+	Id_zetaZ = quantity.Symbolic( [sym("zeta"), 1; 2 sym("z")], zZeta([2 1]));
+	
+	tc.verifyEqual(Id.subs("z", 1).on(), Id_z1.on(), 'AbsTol', 10*eps);
+	tc.verifyEqual( Id.subs({"z", "zeta"}, {"zeta", "z"}).on(), Id_zetaZ.on())
 end % testSubs3()
 
 function testSubs2(tc)