diff --git a/geometry.go b/geometry.go
index 2d902dc5a7583323a8a2133a6b9b1dd80165dc6b..a98b78caa38cf94324adce063645572975b2864d 100644
--- a/geometry.go
+++ b/geometry.go
@@ -406,12 +406,12 @@ func (l Line) IntersectRect(r Rect) Vec {
 			//  - the point is contained by the rectangle
 			//  - the point is not the corner itself
 			corners := r.Vertices()
-			closest := ZV
+			var closest *Vec
 			closestCorner := corners[0]
 			for _, c := range corners {
 				cc := l.Closest(c)
-				if closest == ZV || (closest.Len() > cc.Len() && r.Contains(cc)) {
-					closest = cc
+				if closest == nil || (closest.Len() > cc.Len() && r.Contains(cc)) {
+					closest = &cc
 					closestCorner = c
 				}
 			}