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 38180)
+++ /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/qos/altq_rmclass.c	(working copy)
@@ -313,6 +313,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 +799,7 @@
 			red_destroy(cl->red_);
 #endif
 	}
+	qlockdestroy(cl->q_);
 	FREE(cl->q_, M_DEVBUF);
 	FREE(cl, M_DEVBUF);
 }
Index: /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/qos/qos_dynamic.c
===================================================================
--- /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/qos/qos_dynamic.c	(revision 38180)
+++ /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/qos/qos_dynamic.c	(working copy)
@@ -38,7 +38,7 @@
 int qos_session_status = SESSION_DISABLE;
 
 uint32_t repeat_segment_num = 50;
-uint32_t q_del_step_size = 50;
+uint32_t q_del_step_size = 1;
 uint32_t max_dyn_queue = MAX_DYN_QUEUE;
 
 struct dyn_session_qos_conf_head dyn_session_qos_conf_head = STAILQ_HEAD_INITIALIZER(dyn_session_qos_conf_head);
Index: /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/qos/qos_scheduler.c
===================================================================
--- /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/qos/qos_scheduler.c	(revision 38180)
+++ /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/app/qos/qos_scheduler.c	(working copy)
@@ -847,7 +847,9 @@
 
         mtx_lock (&qos_session_lock);
     	STAILQ_INSERT_HEAD(&qos_queue_root_head, pQoSQRootSave, list_entry);
-        ++current_dyn_q_count;
+        if (qos_session_status) {
+	    ++current_dyn_q_count;
+        }
         mtx_unlock (&qos_session_lock);
 	splx(s);
 	return(QOS_SUCCESS);
Index: /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/netinet/click_input.c
===================================================================
--- /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/netinet/click_input.c	(revision 38180)
+++ /branches/rel_apv_10_4_0_112_gail/usr/src/sys/click/netinet/click_input.c	(working copy)
@@ -13288,7 +13288,10 @@
 
 		ffo_monitor_link_status_changed();
 		if (!is_atcp_launched_by_gdb) {
-			if (is_all_atcp_thread_init_done() && virtual_watchdog_all_threads_ok) {
+#if 0
+			if (is_all_atcp_thread_init_done() && virtual_watchdog_all_threads_ok) { //Bug649 we may have to come back to this change
+#endif
+			if (is_all_atcp_thread_init_done()) {
 				if (uhi_process_status_notify() == 0) {
 					d_update_time[d_update_index++] = ticks;
 					d_update_index &= (D_MAX_CNT - 1);
