diff --git a/cbc/ECBE_Components.ttcn b/cbc/ECBE_Components.ttcn
index eaf2772..996b17d 100644
--- a/cbc/ECBE_Components.ttcn
+++ b/cbc/ECBE_Components.ttcn
@@ -35,9 +35,44 @@
 	return hex2str(oct2hex(inp.payload));
 }
 
+private function f_cbs2ecbe_etws(CBS_Message inp, charstring cbe_name) return EcbeCbcMessage
+{
+	var EcbeWarningTypeDecoded warn_type;
+	int2enum(inp.msg_id - 4352, warn_type);
+
+	var EcbeCbcMessage ret := {
+		cbe_name := cbe_name,
+		category := f_cbs2ecbe_category(inp.category),
+		repetition_period := inp.rep_period,
+		num_of_bcast := inp.num_bcast_req,
+		scope := { scope_plmn := {} },
+		smscb_message := {
+			serial_nr := {
+				serial_nr_encoded := inp.ser_nr
+			},
+			message_id := inp.msg_id,
+			payload := {
+				payload_etws := {
+					warning_type := {
+						warning_type_decoded := warn_type
+					},
+					emergency_user_alert := true,
+					popup_on_display := true,
+					warning_sec_info := omit
+					}
+			}
+		}
+	};
+	return ret;
+}
+
 /* convert from CBS_Message to EcbeCbcMessage */
 function f_cbs2ecbe(CBS_Message inp, charstring cbe_name) return EcbeCbcMessage
 {
+	if (msg_id_is_etws(inp.msg_id)) {
+		return f_cbs2ecbe_etws(inp, cbe_name);
+	}
+
 	var EcbeCbcMessage ret := {
 		cbe_name := cbe_name,
 		category := f_cbs2ecbe_category(inp.category),
