diff --git a/src/modules/HTTPLoop/log.c b/src/modules/HTTPLoop/log.c
index a4cad9fbba00785f10488eeb5f73d65161bec491..17aba1a987a2f50e090bca2fc5c0728b460608fa 100644
--- a/src/modules/HTTPLoop/log.c
+++ b/src/modules/HTTPLoop/log.c
@@ -90,12 +90,14 @@ void f_aap_log_as_array(INT32 args)
   struct log *l = LTHIS->log;
   int n = 0;
   pop_n_elems(args);
-  
+
+  THREADS_ALLOW();
   mt_lock( &l->log_lock );
   le = l->log_head;
   l->log_head = l->log_tail = 0;
   mt_unlock( &l->log_lock );
-  
+  THREADS_DISALLOW();
+
   while(le)
   {
     struct log_entry *l;
@@ -127,11 +129,13 @@ void f_aap_log_size(INT32 UNUSED(args))
     push_int(0);
     return;
   }
+  THREADS_ALLOW();
   mt_lock( &l->log_lock );
   le = l->log_head; 
   while((le = le->next))
     n++;
   mt_unlock( &l->log_lock );
+  THREADS_DISALLOW();
   push_int(n);
 }