diff --git a/monitor/packet.c b/monitor/packet.c
index 224d450..6412af4 100644
--- a/monitor/packet.c
+++ b/monitor/packet.c
@@ -108,6 +108,7 @@
 
 #define UNKNOWN_MANUFACTURER 0xffff
 
+#define CTRL_RAW  0x0000
 #define CTRL_MGMT 0x0001
 
 #define MAX_CTRL 64
@@ -9173,13 +9174,14 @@
 
 	sprintf(channel, "0x%4.4x", cookie);
 
-	if (format == CTRL_MGMT && size >= 8) {
+	if ((format == CTRL_RAW || format == CTRL_MGMT) && size >= 8) {
 		uint8_t version;
 		uint16_t revision;
 		uint32_t flags;
 		uint8_t ident_len;
 		const char *comm;
 		char details[48];
+		const char *title;
 
 		version = get_u8(data);
 		revision = get_le16(data + 1);
@@ -9200,8 +9202,13 @@
 				flags & 0x0001 ? "(privileged) " : "",
 				version, revision);
 
+		if (format == CTRL_RAW)
+			title = "RAW Open";
+		else
+			title = "MGMT Open";
+
 		print_packet(tv, cred, '@', index, channel, COLOR_CTRL_OPEN,
-						"MGMT Open", comm, details);
+						title, comm, details);
 	} else {
 		char label[7];
 
@@ -9222,6 +9229,7 @@
 	uint32_t cookie;
 	uint16_t format;
 	char channel[11], label[22];
+	const char *title;
 
 	if (size < 4) {
 		print_packet(tv, cred, '*', index, NULL, COLOR_ERROR,
@@ -9239,16 +9247,22 @@
 
 	release_ctrl(cookie, &format, label);
 
-	if (format == CTRL_MGMT) {
-		print_packet(tv, cred, '@', index, channel, COLOR_CTRL_CLOSE,
-						"MGMT Close", label, NULL);
-	} else {
+	switch (format) {
+	case CTRL_RAW:
+		title = "RAW Close";
+		break;
+	case CTRL_MGMT:
+		title = "MGMT Close";
+		break;
+	default:
 		sprintf(label, "0x%4.4x", format);
-
-		print_packet(tv, cred, '@', index, channel, COLOR_CTRL_CLOSE,
-						"Control Close", label, NULL);
+		title = "Control Close";
+		break;
 	}
 
+	print_packet(tv, cred, '@', index, channel, COLOR_CTRL_CLOSE,
+							title, label, NULL);
+
 	packet_hexdump(data, size);
 }
 
