diff --git a/vlib/math/math.v b/vlib/math/math.v
index 5d45576073..543109c57a 100644
--- a/vlib/math/math.v
+++ b/vlib/math/math.v
@@ -223,9 +223,12 @@ pub fn trunc(a f64) f64 {
 
 // factorial calculates the factorial of the provided value.
 pub fn factorial(a int) i64 {
+	if a < 0 {
+		panic('factorial: Cannot find factorial of negative number')
+	}
 	mut prod := 1
 	for i:= 0; i < a; i++ {
-		prod = prod * (i+1)
+		prod *= (i+1)
 	}
 	return prod
 }