diff --git a/dlls/mshtml/task.c b/dlls/mshtml/task.c
index f9f12d52e96..6baac6388aa 100644
--- a/dlls/mshtml/task.c
+++ b/dlls/mshtml/task.c
@@ -128,8 +128,10 @@ void remove_target_tasks(LONG target)
}
if(!list_empty(&thread_data->timer_list)) {
+ DWORD tc = GetTickCount();
+
timer = LIST_ENTRY(list_head(&thread_data->timer_list), task_timer_t, entry);
- SetTimer(thread_data->thread_hwnd, TIMER_ID, timer->time - GetTickCount(), NULL);
+ SetTimer(thread_data->thread_hwnd, TIMER_ID, max( (int)(timer->time - tc), 0 ), NULL);
}
while(thread_data->task_queue_head && thread_data->task_queue_head->target_magic == target) {