diff --git a/funcs/func_frame_trace.c b/funcs/func_frame_trace.c
index 61582a6071758b857b1f70e01e9ebe49bc879753..1cfc8ea08cef00ea10052a7ab75c76669f84c5b4 100644
--- a/funcs/func_frame_trace.c
+++ b/funcs/func_frame_trace.c
@@ -227,7 +227,7 @@ static void print_frame(struct ast_frame *frame)
 		break;
 	case AST_FRAME_CONTROL:
 		ast_verbose("FrameType: CONTROL\n");
-		switch (frame->subclass.integer) {
+		switch ((enum ast_control_frame_type) frame->subclass.integer) {
 		case AST_CONTROL_HANGUP:
 			ast_verbose("SubClass: HANGUP\n");
 			break;
@@ -318,7 +318,14 @@ static void print_frame(struct ast_frame *frame)
 		case AST_CONTROL_INCOMPLETE:
 			ast_verbose("SubClass: INCOMPLETE\n");
 			break;
+		 case AST_CONTROL_END_OF_Q:
+			ast_verbose("SubClass: END_OF_Q\n");
+			break;
+		case AST_CONTROL_UPDATE_RTP_PEER:
+			ast_verbose("SubClass: UPDATE_RTP_PEER\n");
+			break;
 		}
+		
 		if (frame->subclass.integer == -1) {
 			ast_verbose("SubClass: %d\n", frame->subclass.integer);
 		}