Index: apps/app_sms.c =================================================================== --- apps/app_sms.c (revision 399870) +++ apps/app_sms.c (working copy) @@ -694,6 +694,7 @@ } } } + l += l % 2; while (l--) { int v = *i++; if (l--) { @@ -715,6 +716,7 @@ unpacksms8(i, l, udh, udhl, ud, udl, udhi); } else { unpacksms16(i, l, udh, udhl, ud, udl, udhi); + l += l % 2; /* 16Bit encoding requires different length adjustment */ } return l + 1; }