diff --git a/cast_test.go b/cast_test.go
index <HASH>..<HASH> 100644
--- a/cast_test.go
+++ b/cast_test.go
@@ -53,7 +53,7 @@ func TestToBool(t *testing.T) {
 	assert.Equal(t, ToBool("F"), false)
 	assert.Equal(t, ToBool(false), false)
 	assert.Equal(t, ToBool("foo"), false)
-	
+
 	assert.Equal(t, ToBool("true"), true)
 	assert.Equal(t, ToBool("TRUE"), true)
 	assert.Equal(t, ToBool("True"), true)
@@ -61,4 +61,5 @@ func TestToBool(t *testing.T) {
 	assert.Equal(t, ToBool("T"), true)
 	assert.Equal(t, ToBool(1), true)
 	assert.Equal(t, ToBool(true), true)
+	assert.Equal(t, ToBool(-1), true)
 }
diff --git a/caste.go b/caste.go
index <HASH>..<HASH> 100644
--- a/caste.go
+++ b/caste.go
@@ -41,7 +41,7 @@ func ToBoolE(i interface{}) (bool, error) {
 	case nil:
 		return false, nil
 	case int:
-		if i.(int) > 0 {
+		if i.(int) != 0 {
 			return true, nil
 		}
 		return false, nil
Updated to return bool false only for zero