diff --git a/geom_test.go b/geom_test.go
index <HASH>..<HASH> 100644
--- a/geom_test.go
+++ b/geom_test.go
@@ -201,6 +201,11 @@ func TestGeoMIsInvert(t *testing.T) {
 	cpx.Scale(1.5, 2.5)
 	cpx.Translate(-2, -3)
 
+	cpx2 := GeoM{}
+	cpx2.Scale(2, 3)
+	cpx2.Rotate(0.234)
+	cpx2.Translate(100, 100)
+
 	cases := []struct {
 		GeoM       GeoM
 		Invertible bool
@@ -225,6 +230,10 @@ func TestGeoMIsInvert(t *testing.T) {
 			GeoM:       cpx,
 			Invertible: true,
 		},
+		{
+			GeoM:       cpx2,
+			Invertible: true,
+		},
 	}
 
 	pts := []struct {
diff --git a/internal/affine/geom.go b/internal/affine/geom.go
index <HASH>..<HASH> 100644
--- a/internal/affine/geom.go
+++ b/internal/affine/geom.go
@@ -188,7 +188,7 @@ func (g *GeoM) det() float64 {
 	if g == nil {
 		return 1
 	}
-	return (g.a_1+1)*(g.d_1+1) - g.b - g.c
+	return (g.a_1+1)*(g.d_1+1) - g.b*g.c
 }
 
 func (g *GeoM) IsInvertible() bool {
affine: Bug fix: (*GeoM).det() was wrong (#<I>)