diff --git a/src/Messaging/Protocol/Message.php b/src/Messaging/Protocol/Message.php
index 7d78c71..f22f91a 100644
--- a/src/Messaging/Protocol/Message.php
+++ b/src/Messaging/Protocol/Message.php
@@ -1,7 +1,7 @@
 <?php
 namespace Ratchet\RFC6455\Messaging\Protocol;
 
-class Message implements MessageInterface {
+class Message implements \IteratorAggregate, MessageInterface {
     /**
      * @var \SplDoublyLinkedList
      */
@@ -14,6 +14,10 @@ class Message implements MessageInterface {
         $this->_frames = new \SplDoublyLinkedList;
     }
 
+    public function getIterator() {
+        return $this->_frames;
+    }
+
     /**
      * {@inheritdoc}
      */
diff --git a/src/Messaging/Protocol/MessageInterface.php b/src/Messaging/Protocol/MessageInterface.php
index f3d8a64..2913d82 100644
--- a/src/Messaging/Protocol/MessageInterface.php
+++ b/src/Messaging/Protocol/MessageInterface.php
@@ -1,7 +1,7 @@
 <?php
 namespace Ratchet\RFC6455\Messaging\Protocol;
 
-interface MessageInterface extends DataInterface, \ArrayAccess, \Countable {
+interface MessageInterface extends DataInterface, \Traversable, \ArrayAccess, \Countable {
     /**
      * @param FrameInterface $fragment
      * @return MessageInterface
diff --git a/src/Messaging/Streaming/MessageStreamer.php b/src/Messaging/Streaming/MessageStreamer.php
index 5701c57..d45fe5a 100644
--- a/src/Messaging/Streaming/MessageStreamer.php
+++ b/src/Messaging/Streaming/MessageStreamer.php
@@ -64,7 +64,7 @@ class MessageStreamer {
         if ($context->getMessage()->isCoalesced()) {
             $msgCheck = $this->validator->checkMessage($context->getMessage());
             if ($msgCheck !== true) {
-                $context->onClose($msgCheck || null);
+                $context->onClose($msgCheck);
                 return;
             }
             $context->onMessage($context->getMessage());
diff --git a/tests/ab/startServer.php b/tests/ab/startServer.php
index 47643a6..fa7dbd8 100644
--- a/tests/ab/startServer.php
+++ b/tests/ab/startServer.php
@@ -33,8 +33,11 @@ class ConnectionContext implements Ratchet\RFC6455\Messaging\Streaming\ContextIn
     }
 
     public function onMessage(\Ratchet\RFC6455\Messaging\Protocol\MessageInterface $msg) {
-        $frame = new Frame($msg->getPayload(), true, $msg[0]->getOpcode());
-        $this->_conn->write($frame->getContents());
+        foreach ($msg as $frame) {
+            $frame->unMaskPayload();
+        }
+
+        $this->_conn->write($msg->getContents());
     }
 
     public function onPing(\Ratchet\RFC6455\Messaging\Protocol\FrameInterface $frame) {