diff --git a/commands.c b/commands.c
index 01e7878..522413d 100644
--- a/commands.c
+++ b/commands.c
@@ -351,8 +351,8 @@ bool ci_drag(arg_t _)
 		x = e.xmotion.x;
 		y = e.xmotion.y;
 	}
-	win_set_cursor(&win, CURSOR_ARROW);
 	set_timeout(reset_cursor, TO_CURSOR_HIDE, true);
+	reset_cursor();
 
 	return true;
 }
diff --git a/main.c b/main.c
index f7e5762..5a828a9 100644
--- a/main.c
+++ b/main.c
@@ -622,8 +622,8 @@ void on_buttonpress(XButtonEvent *bev)
 	static Time firstclick;
 
 	if (mode == MODE_IMAGE) {
-		win_set_cursor(&win, CURSOR_ARROW);
 		set_timeout(reset_cursor, TO_CURSOR_HIDE, true);
+		reset_cursor();
 
 		for (i = 0; i < ARRLEN(buttons); i++) {
 			if (buttons[i].button == bev->button &&
@@ -783,8 +783,8 @@ void run(void)
 				break;
 			case MotionNotify:
 				if (mode == MODE_IMAGE) {
-					win_set_cursor(&win, CURSOR_ARROW);
 					set_timeout(reset_cursor, TO_CURSOR_HIDE, true);
+					reset_cursor();
 				}
 				break;
 		}