diff --git a/src/term.c b/src/term.c index 0b6d181ff5c..4899efdc121 100644 --- a/src/term.c +++ b/src/term.c @@ -3154,9 +3154,13 @@ mouse_get_xy (int *x, int *y) struct frame *sf = SELECTED_FRAME (); if (f == sf || frame_ancestor_p (sf, f)) { - int mx = XFIXNUM (XCAR (XCDR (mouse))); - int my = XFIXNUM (XCDR (XCDR (mouse))); - root_xy (f, mx, my, x, y); + Lisp_Object lmx = XCAR (XCDR (mouse)), lmy = XCDR (XCDR (mouse)); + if (FIXNUMP (lmx) && FIXNUMP (lmy)) + { + int mx = XFIXNUM (lmx); + int my = XFIXNUM (lmy); + root_xy (f, mx, my, x, y); + } } }