diff --git a/VectoCore/Utils/SI.cs b/VectoCore/Utils/SI.cs
index 82a168b371c360553dd1345147f699c56ad7568d..712e15f89b706dcd686037378724473eb81096ee 100644
--- a/VectoCore/Utils/SI.cs
+++ b/VectoCore/Utils/SI.cs
@@ -122,6 +122,12 @@ namespace TUGraz.VectoCore.Utils
 			return si + d;
 		}
 
+
+		public static T operator -(SIBase<T> si1)
+		{
+			return 0 - si1;
+		}
+
 		public static T operator -(SIBase<T> si1, SIBase<T> si2)
 		{
 			return (si1 as SI) - si2;
@@ -129,7 +135,7 @@ namespace TUGraz.VectoCore.Utils
 
 		public static T operator -(SIBase<T> si1, SI si2)
 		{
-			return -si2 + si1;
+			return si1 - si2;
 		}
 
 		public static T operator -(SI si1, SIBase<T> si2)
@@ -622,11 +628,6 @@ namespace TUGraz.VectoCore.Utils
 			return new SI(d - si1.Val, si1);
 		}
 
-		public static SI operator -(SI si1)
-		{
-			return 0 - si1;
-		}
-
 		public static SI operator *(SI si1, double d)
 		{
 			return new SI(si1.Val * d, si1);
diff --git a/VectoCoreTest/Utils/VectoMathTest.cs b/VectoCoreTest/Utils/VectoMathTest.cs
index 2c163c8e67055adf5aba109fb75ee29ec58e5c41..f3ee4a3c4b2b59ef0857b29bcd1c1300d14f3f07 100644
--- a/VectoCoreTest/Utils/VectoMathTest.cs
+++ b/VectoCoreTest/Utils/VectoMathTest.cs
@@ -11,7 +11,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 		{
 			var smaller = 0.SI();
 			var bigger = 5.SI();
-			var negative = -10.SI();
+			var negative = -1 * 10.SI();
 			var positive = 10.SI();
 			Assert.AreEqual(smaller, VectoMath.Min(smaller, bigger));