diff --git a/mysys/queues.c b/mysys/queues.c
index 78da8a1584251f6d674852ad940763387ff941e6..f1bd6759f46cac5ec9b11e4653f04fa75be809c4 100644
--- a/mysys/queues.c
+++ b/mysys/queues.c
@@ -167,11 +167,11 @@ void _downheap(register QUEUE *queue, uint idx)
 }
 
 
-static int queue_fix_cmp(QUEUE *queue, void *a, void *b)
+static int queue_fix_cmp(QUEUE *queue, void **a, void **b)
 {
   return queue->compare(queue->first_cmp_arg,
-			(char*) a+queue->offset_to_key,
-			(char*) b+queue->offset_to_key);
+			(char*) (*a)+queue->offset_to_key,
+			(char*) (*b)+queue->offset_to_key);
 }
 
 	/* Fix heap when every element was changed */