diff --git a/+quantity/Symbolic.m b/+quantity/Symbolic.m
index b7fd9e2cc23676a122e810f964cd71ec9e1ae038..3c9fb4833f87bd1f88923844daed6cc13349df30 100644
--- a/+quantity/Symbolic.m
+++ b/+quantity/Symbolic.m
@@ -151,20 +151,13 @@ classdef Symbolic < quantity.Function
 			res = ~(A==B);
 		end
 		
-% 		function Q = quantity.Discrete(obj, varargin)
-% 			% Cast of a quantity.Symbolic object into a quantity.Discrete
-% 			% object.
-% 			myParser = misc.Parser();
-% 			myParser.addParameter('domain', obj(1).domain);
-% 			myParser.addParameter('name', obj(1).name);
-% 			myParser.parse(varargin{:});
-% 			Q = quantity.Discrete(obj.on(), ...
-% 				'domain', myParser.Results.domain, ...
-% 				'name', myParser.Results.name);
-% 		end	
 		function f = function_handle(obj)
 			f = matlabFunction(sym(obj));
-		end
+			if nargin(f) ~= nargin(obj)
+				warning("function_handle has not all domains as variables")
+			end
+		end % function_handle
+		
 		function F = quantity.Function(obj, varargin)
 			myParser = misc.Parser();
 			myParser.addParameter('domain', obj(1).domain);
@@ -806,7 +799,7 @@ classdef Symbolic < quantity.Function
 			[result.valueDiscrete] = deal([]);
 			for l = 1:numel(obj)
 				result(l).valueSymbolic = diff(obj(l).valueSymbolic, diffGridName, k);
-				result(l).valueContinuous = obj.setValueContinuous(result(l).valueSymbolic, obj(1).variable);
+				result(l).valueContinuous = obj.setValueContinuous(result(l).valueSymbolic, [obj(1).domain.name]);
 			end
 		end		
 		
diff --git a/+unittests/+quantity/testSymbolic.m b/+unittests/+quantity/testSymbolic.m
index 4b6aa3e7e9c3018ba8fc72286db098d635498944..da82d1645968571f5ec13cf627fc88c287ccca09 100644
--- a/+unittests/+quantity/testSymbolic.m
+++ b/+unittests/+quantity/testSymbolic.m
@@ -4,6 +4,20 @@ function [tests ] = testSymbolic()
 tests = functiontests(localfunctions());
 end
 
+function testDiffOfConstants(tc)
+% unittest to fix a bug...
+z = quantity.Domain("z", linspace(0, 1, 4));
+K0 = quantity.Symbolic.zeros(1, z);%[z, zeta]);
+tc.verifyEqual(K0.on(), zeros([4, 1]));
+
+K1 = quantity.Symbolic.ones(1, z);%[z, zeta]);
+tc.verifyEqual(K1.diff("z", 1).on(), zeros([4, 1]));
+
+zeta = quantity.Domain("zeta", linspace(0, 1, 5));
+K2 = quantity.Symbolic.ones([2, 2], [z, zeta]);
+tc.verifyEqual(K2.diff("z", 1).on(), zeros([4, 5, 2, 2]));
+end % testDiffOfConstants
+
 function testZeroOn(tc)
 % unittest to fix a bug related with isConstant usage in on() of symbolic
 z = quantity.Domain("z", linspace(0, 1, 11));