diff --git a/lib/pdu.js b/lib/pdu.js
index <HASH>..<HASH> 100644
--- a/lib/pdu.js
+++ b/lib/pdu.js
@@ -140,9 +140,10 @@ PDU.prototype._filter = function(func) {
 				}.bind(this));
 			} else {
 				if (key === 'message_payload') {
-					this[key] = tlvs[key].filter[func].call(this, this[key], 'short_message' in this);
+					skipUdh = this.short_message && this.short_message.message && this.short_message.message.length;
+					this[key] = tlvs[key].filter[func].call(this, this[key], skipUdh);
 				} else {
-					this[key] = tlvs[key].filter[func].call(this, this[key], key !== 'message_payload');
+					this[key] = tlvs[key].filter[func].call(this, this[key], true);
 				}
 			}
 		}
Fix/message payload udh (#<I>)

fix udh collision when message_payload and short_message