Index: /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/qos/altq_rmclass.c
===================================================================
--- /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/qos/altq_rmclass.c	(revision 38172)
+++ /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/qos/altq_rmclass.c	(working copy)
@@ -73,6 +73,7 @@
 #ifdef __QOS_COMPILED__
 #include <click/app/qos/altq_rmclass.h>
 #include <click/app/qos/altq_red.h>
+#include <click/app/fastlog/fastlog.h>
 
 /*
  * Local Macros
@@ -313,6 +314,10 @@
      mtx_init(&q->qos_qtail_lock, "qos queue tail lock", NULL, MTX_DEF | MTX_NOWITNESS);
 }
 
+void qlockdestroy (class_queue_t *q) {
+     mtx_destroy(&q->qos_qtail_lock);
+}
+
 struct rm_class *
 rmc_newclass(int pri, struct rm_ifdat *ifd, u_int nsecPerByte,
     void (*action)(rm_class_t *, rm_class_t *), int maxq,
@@ -795,6 +800,9 @@
 			red_destroy(cl->red_);
 #endif
 	}
+
+	fastlog_syslog(LOG_DEBUG, "destroying the queue lock.\n");
+	qlockdestroy(cl->q_);
 	FREE(cl->q_, M_DEVBUF);
 	FREE(cl, M_DEVBUF);
 }
