diff --git a/geometry.go b/geometry.go
index 3b2b8b318e78e407288b0c259951a2ca560be186..99514cc1cf80d2d83e5a33109af43b64e6785a31 100644
--- a/geometry.go
+++ b/geometry.go
@@ -272,10 +272,10 @@ func (r Rect) Union(s Rect) Rect {
 // If r and s don't overlap, this function returns R(0, 0, 0, 0).
 func (r Rect) Intersect(s Rect) Rect {
 	t := R(
-		math.Min(r.Max.X, s.Max.X),
-		math.Min(r.Max.Y, s.Max.Y),
 		math.Max(r.Min.X, s.Min.X),
 		math.Max(r.Min.Y, s.Min.Y),
+		math.Min(r.Max.X, s.Max.X),
+		math.Min(r.Max.Y, s.Max.Y),
 	)
 	if t.Min.X >= t.Max.X || t.Min.Y >= t.Max.Y {
 		return Rect{}