diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c index 3d2d63337..fc4df8477 100644 --- a/hw/xfree86/modes/xf86Cursors.c +++ b/hw/xfree86/modes/xf86Cursors.c @@ -480,14 +480,8 @@ xf86_use_hw_cursor_argb (ScreenPtr screen, CursorPtr cursor) xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); xf86CursorInfoPtr cursor_info = xf86_config->cursor_info; - if (xf86_config->cursor) { - /* Under some circumstances an already set cursor is set again. - * If the pointer is freed, ->bits is killed */ - if (xf86_config->cursor != cursor) - FreeCursor (xf86_config->cursor, None); - else - --cursor->refcnt; - } + if (xf86_config->cursor) + FreeCursor (xf86_config->cursor, None); xf86_config->cursor = cursor; ++cursor->refcnt;