diff --git a/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/CollectorActor.scala b/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/CollectorActor.scala
index d0779c73423e03c98aaaeae46dd649dc1ba6e21f..6f50df4fc5fee4ac0c989228cac08ef2f9d47a7e 100755
--- a/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/CollectorActor.scala
+++ b/bigbluebutton-apps/src/main/scala/org/bigbluebutton/core/CollectorActor.scala
@@ -1770,7 +1770,28 @@ class CollectorActor(dispatcher: IDispatcher) extends Actor {
     map.put("recorded", msg.recorded)
     map.put("requesterID", msg.requesterID)
     map.put("whiteboardId", msg.whiteboardId)
-    map.put("shapes", msg.shapes.toString()) //#todo not tested
+
+    var shapesMap = new java.util.HashMap[String, Any]()
+
+    for(index <- 0 until msg.shapes.size)
+    {
+      val item = msg.shapes(index)
+      var tempMap = new java.util.HashMap[String, Any]()
+      tempMap.put("id", item.id)
+      tempMap.put("status", item.status)
+      tempMap.put("shapeType", item.shapeType)
+      tempMap.put("wbId", item.wbId)
+      
+      var innerMap = new java.util.HashMap[String, Any]()
+      for ((key, value)<-item.shape)
+      {
+        innerMap.put(key, value)
+      }
+      tempMap.put("shape", innerMap)
+      shapesMap.put(index.toString(), tempMap)
+    }
+    map.put("shapes", shapesMap)
+
     map.put("timestamp", System.nanoTime())
 
     dispatcher.dispatch("***** DISPATCHING GET WHITEBOARD SHAPES REPLY *****************")