diff --git a/lib/types/message.js b/lib/types/message.js
index <HASH>..<HASH> 100644
--- a/lib/types/message.js
+++ b/lib/types/message.js
@@ -8,7 +8,8 @@ var Int64 = require('node-int64'),
     ForcedType = require('./forced_type'),
     AMQPSymbol = require('./amqp_symbol'),
 
-    u = require('../utilities');
+    u = require('../utilities'),
+    errors = require('../errors');
 
 /**
  *
@@ -198,6 +199,12 @@ module.exports.Properties = Properties;
  */
 function ApplicationProperties(properties) {
   ApplicationProperties.super_.call(this, ApplicationProperties, properties);
+
+  if (!(properties instanceof Object))
+    throw errors.MalformedPayloadError('invalid application properties: ', properties);
+
+  var _keys = Object.keys(properties), _len = _keys.length;
+  for (var i = 0; i < _len; ++i) this[_keys[i]] = properties[_keys[i]];
 }
 
 util.inherits(ApplicationProperties, DescribedType);
fix(application-properties): make properties accessible