xua_codec: convert integer to binary and truncate binary to length
diff --git a/src/xua_codec.erl b/src/xua_codec.erl
index 7fb3103..ad5cbd3 100644
--- a/src/xua_codec.erl
+++ b/src/xua_codec.erl
@@ -89,10 +89,14 @@
 	OptBin = encode_xua_opt(Iei, Attr),
 	encode_xua_opts(Tail, <<Bin/binary, OptBin/binary>>).
 
+% convert integer parameters to binary before continuing
+encode_xua_opt(Iei, {LenIn, Data}) when is_integer(Iei), is_integer(Data) ->
+	encode_xua_opt(Iei, {LenIn, <<Data:LenIn/big-integer-unit:8>>});
+
 encode_xua_opt(Iei, {LenIn, Data}) when is_integer(Iei), is_binary(Data) ->
 	Length = LenIn + 4,
 	PadLen = get_num_pad_bytes(Length),
-	<<Iei:16/big, Length:16/big, Data/binary, 0:PadLen/integer-unit:8>>;
+	<<Iei:16/big, Length:16/big, Data:LenIn/binary, 0:PadLen/integer-unit:8>>;
 encode_xua_opt(Iei, Data) when is_integer(Iei), is_binary(Data) ->
 	Length = byte_size(Data) + 4,
 	PadLen = get_num_pad_bytes(Length),