diff --git a/lib/modules/ADT.pmod/queue.pike b/lib/modules/ADT.pmod/queue.pike
index 8841f70997f36129e1ae79e25dc306dfea20ef83..21085ee6fe9534a2c37d23165e0bbe1f1c4fb73e 100644
--- a/lib/modules/ADT.pmod/queue.pike
+++ b/lib/modules/ADT.pmod/queue.pike
@@ -1,6 +1,6 @@
 /* queue.pike
  *
- * A FIFO queue. Used by connection*
+ * A simple FIFO queue. 
  */
 
 #define QUEUE_SIZE 100
@@ -9,10 +9,11 @@ array l;
 int head;
 int tail;
 
-void create()
+void create(mixed ..args)
 {
-  l = allocate(QUEUE_SIZE);
-  head = tail = 0;
+  l = args + allocate(QUEUE_SIZE);
+  head = sizeof(args);
+  tail = 0;
 }
 
 void put(mixed item)