M3UA: Fill in a default message priority of 0 if 'undefined'
diff --git a/src/m3ua_codec.erl b/src/m3ua_codec.erl
index 4a2d10c..a01eec1 100644
--- a/src/m3ua_codec.erl
+++ b/src/m3ua_codec.erl
@@ -59,6 +59,8 @@
 
 parse_m3ua_opt(Opt = ?M3UA_IEI_PROTOCOL_DATA, MsgBin) when is_binary(MsgBin) ->
 	<<Opc:32/big, Dpc:32/big, Si:8, Ni:8, Mp:8, Sls:8, Payload/binary>> = MsgBin,
+	% The idea is to hand back a #mtp3_msg{} to make upper layers beyond
+	% MTP-TRANSFR.{ind,req} unaware of a MTP3 or M3UA lower layer
 	{Opt, #mtp3_msg{network_ind = Ni, service_ind = Si,
 			routing_label = #mtp3_routing_label{sig_link_sel = Sls,
 							    origin_pc = Opc,
@@ -90,7 +92,11 @@
 						      origin_pc = Opc,
 						      dest_pc = Dpc},
 		  payload = Payload, m3ua_mp = Mp} = Mtp3,
-	PayBin = <<Opc:32/big, Dpc:32/big, Si:8, Ni:8, Mp:8, Sls:8, Payload/binary>>,
+	case Mp of
+		undefined -> MpD = 0;
+		_ -> MpD = Mp
+	end,
+	PayBin = <<Opc:32/big, Dpc:32/big, Si:8, Ni:8, MpD:8, Sls:8, Payload/binary>>,
 	encode_m3ua_opt(?M3UA_IEI_PROTOCOL_DATA, PayBin);
 encode_m3ua_opt(Iei, Data) when is_integer(Iei), is_binary(Data) ->
 	Length = byte_size(Data) + 4,