diff --git a/src/conio/bitmap_con.c b/src/conio/bitmap_con.c
index ebc281ab0027a0cce6640c5cc9b4462bae6f39cc..45d75006c8e1bec8e0cad22bbd94ae419f67ad66 100644
--- a/src/conio/bitmap_con.c
+++ b/src/conio/bitmap_con.c
@@ -1944,9 +1944,9 @@ int bitmap_drv_init(void (*drawrect_cb) (struct rectlist *data)
 	pthread_mutex_unlock(&screenlock);
 	pthread_mutex_unlock(&vstatlock);
 
-	pthread_mutex_lock(&callbacks.lock);
 	callbacks.drawrect=drawrect_cb;
 	callbacks.flush=flush_cb;
+	pthread_mutex_lock(&callbacks.lock);
 	callbacks.rects = 0;
 	pthread_mutex_unlock(&callbacks.lock);
 	bitmap_initialized=1;