diff --git a/+quantity/Discrete.m b/+quantity/Discrete.m
index 9120c67ef12e52bcc20712e20a59860f58a40c31..5bcb16bffb1579cada7fb982c8861e3f49c667ad 100644
--- a/+quantity/Discrete.m
+++ b/+quantity/Discrete.m
@@ -1656,8 +1656,9 @@ classdef  (InferiorClasses = {?quantity.Symbolic}) Discrete ...
 				sa = size(a);
 				sb = size(b);
 				
-				if sa(2) == 0 && sb(1) == 0
-					error("Error: quantities with dimensions (n, 0) * (0, m) cannot be multiplied");
+				if sa(2) == 0 && sb(1) == 0 && sb(end) ~= 0
+					error("quantity:Discrete:mTimes", ...
+						"Error: quantities with dimensions (n, 0) * (0, m) cannot be multiplied");
 				else
 					P = quantity.Discrete.empty([sa(1:end-1) sb(2:end)]);
 				end
diff --git a/+unittests/+quantity/testDiscrete.m b/+unittests/+quantity/testDiscrete.m
index 825f7ee01e8bf0a49ff948b40b9b2c573085e696..e6f3901d88656f0cdc027e866227197ef4b42cfd 100644
--- a/+unittests/+quantity/testDiscrete.m
+++ b/+unittests/+quantity/testDiscrete.m
@@ -1310,6 +1310,13 @@ testCase.verifyTrue( numeric.near( squeeze(double(a * 42)), [sin(z * pi) * 42, c
 
 testCase.verifyTrue( numeric.near( squeeze(double(s * a')), [sin(z * pi) * 42, cos(z * pi) * 42]));
 testCase.verifyTrue( numeric.near( squeeze(double(a * s)), [sin(z * pi) * 42, cos(z * pi) * 42]));
+%% test multiplication with empty quantities
+e1 = quantity.Discrete.empty([3, 0]);
+
+testCase.verifyTrue( isempty( e1.' * e1 ) );
+testCase.verifyError( @() e1 * e1.', "quantity:Discrete:mTimes" )
+testCase.verifyEqual( size(e1 * quantity.Discrete.empty()), [3 0])
+
 end
 
 function testOnConstant(testCase)