diff --git a/akka-bbb-apps/build.sbt b/akka-bbb-apps/build.sbt
index bb8b3fd1d8985b46a238a074df4dfff5dcb009ee..cc04561c592ef48a55fe3321d9ccd422b3e0e849 100755
--- a/akka-bbb-apps/build.sbt
+++ b/akka-bbb-apps/build.sbt
@@ -50,7 +50,7 @@ libraryDependencies ++= {
 	  "com.google.code.gson"      %  "gson"              % "1.7.1",
 	  "redis.clients"             %  "jedis"             % "2.1.0",
       "org.apache.commons"        %  "commons-lang3"     % "3.2",
-      "org.bigbluebutton"         %  "bbb-common-message" % "0.0.6"
+      "org.bigbluebutton"         %  "bbb-common-message" % "0.0.7"
 	)}
 
 
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/WhiteboardModel.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/WhiteboardModel.scala
index 420797598cab4fe38da009e09042935c225d085c..521b063f50b3f0f0ab2f8c925933c6494c53d045 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/WhiteboardModel.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/WhiteboardModel.scala
@@ -2,7 +2,7 @@ package org.bigbluebutton.core.apps
 
 import scala.collection.mutable.ArrayBuffer
 
-case class AnnotationVO(id: String, status: String, shapeType: String, shape: scala.collection.immutable.Map[String, Any], wbId: String)
+case class AnnotationVO(id: String, status: String, shapeType: String, shape: scala.collection.immutable.Map[String, Object], wbId: String)
 
 class WhiteboardModel {
   private var _whiteboards = new scala.collection.immutable.HashMap[String, Whiteboard]()
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/recorders/WhiteboardEventRedisRecorder.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/recorders/WhiteboardEventRedisRecorder.scala
index a252439b249587fec0a461f38d7d78cfc72f20a8..6581f4438a54feb6b90cd98cc3f6eaee3532be13 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/recorders/WhiteboardEventRedisRecorder.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/recorders/WhiteboardEventRedisRecorder.scala
@@ -53,13 +53,8 @@ class WhiteboardEventRedisRecorder(recorder: RecorderApplication) extends OutMes
       event.setPresentation(getPresentationId(msg.whiteboardId))
       event.setPageNumber(getPageNum(msg.whiteboardId))
       event.setWhiteboardId(msg.whiteboardId)
+      event.addAnnotation(mapAsJavaMap(msg.shape.shape))
 
-      // FIXME: Need to fix recording of wb event (ralam june 29, 2015)
-      //val ann: java.util.Map[String, Any] = mapAsJavaMap(msg.shape.shape)
-      //      val ann: java.util.Map[String, Object] = mapAsJavaMap(msg.shape.shape)
-      //      val ann2: java.util.Map[String, Object] = mapAsJavaMap(ann)
-
-      //      event.addAnnotation(mapAsJavaMap(ann))
       recorder.record(msg.meetingID, event)
     } else {
       val event = new AddShapeWhiteboardRecordEvent()
@@ -68,8 +63,7 @@ class WhiteboardEventRedisRecorder(recorder: RecorderApplication) extends OutMes
       event.setPresentation(getPresentationId(msg.whiteboardId))
       event.setPageNumber(getPageNum(msg.whiteboardId))
       event.setWhiteboardId(msg.whiteboardId);
-      // FIXME: Need to fix recording of wb event (ralam june 29, 2015)
-      //      event.addAnnotation(mapAsJavaMap(msg.shape.shape))
+      event.addAnnotation(mapAsJavaMap(msg.shape.shape))
       recorder.record(msg.meetingID, event)
     }
   }
diff --git a/akka-bbb-fsesl/build.sbt b/akka-bbb-fsesl/build.sbt
index 206751d0d698c196b296f7e3c84513666fe539f0..18e9c65a787779d5ce8e101a5f7721fed4cfcb7e 100755
--- a/akka-bbb-fsesl/build.sbt
+++ b/akka-bbb-fsesl/build.sbt
@@ -50,7 +50,7 @@ libraryDependencies ++= {
 	  "com.google.code.gson"      %  "gson"              % "1.7.1",
 	  "redis.clients"             %  "jedis"             % "2.1.0",
       "org.apache.commons"        %  "commons-lang3"     % "3.2",
-      "org.bigbluebutton"         %  "bbb-common-message" % "0.0.6",
+      "org.bigbluebutton"         %  "bbb-common-message" % "0.0.7",
       "org.bigbluebutton"         %  "bbb-fsesl-client"   % "0.0.2"
 	)}
 
diff --git a/bbb-common-message/build.sbt b/bbb-common-message/build.sbt
index 647816435d5739592618dfba598f518a74508d5e..b9f7b2e4270f8919fe52422316c26071402050fc 100755
--- a/bbb-common-message/build.sbt
+++ b/bbb-common-message/build.sbt
@@ -4,7 +4,7 @@ name := "bbb-common-message"
 
 organization := "org.bigbluebutton"
 
-version := "0.0.6"
+version := "0.0.7"
 
 // We want to have our jar files in lib_managed dir.
 // This way we'll have the right path when we import
@@ -50,6 +50,7 @@ autoScalaLibrary := false
 
 // Comment this out when publishing to local maven repo using SNAPSHOT version.
 // To push to sonatype "sbt publishSigned"
+
 publishTo := {
   val nexus = "https://oss.sonatype.org/"
   if (isSnapshot.value)
@@ -82,4 +83,4 @@ pomExtra := (
 licenses := Seq("LGPL-3.0" -> url("http://opensource.org/licenses/LGPL-3.0"))
 
 homepage := Some(url("http://www.bigbluebutton.org"))
-  
\ No newline at end of file
+  
diff --git a/bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Util.java b/bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Util.java
index 679887a2d4e34b5f2980af215d0789c7ca9364ca..08b09460076f0ed3dd8636bee14d69af6e6d1347 100755
--- a/bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Util.java
+++ b/bbb-common-message/src/main/java/org/bigbluebutton/common/messages/Util.java
@@ -4,9 +4,12 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+
+import com.google.gson.Gson;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
 
 public class Util {
 	public Map<String, Boolean> extractPermission(JsonObject vu) {
@@ -414,6 +417,50 @@ public class Util {
 		}
 		return collection;
 	}
+	
+	public Map<String, Object> extractPollResultAnnotation(JsonObject annotationElement) {
+		if (annotationElement.has("result")
+				&& annotationElement.has("points")) {
+			Map<String, Object> finalAnnotation = new HashMap<String, Object>();
+			
+			String resultJson = annotationElement.get("result").getAsString();
+			JsonParser parser = new JsonParser();
+		    JsonArray resultJsonArray = parser.parse(resultJson).getAsJsonArray();
+		    
+			ArrayList<Map<String, Object>> collection = new ArrayList<Map<String, Object>>();
+			Iterator<JsonElement> resultIter = resultJsonArray.iterator();
+
+			while (resultIter.hasNext()){
+				JsonObject p = (JsonObject)resultIter.next();
+				Map<String, Object> vote = new HashMap<String, Object>();
+				Integer vid = p.get("id").getAsInt();
+				Integer vvotes = p.get("num_votes").getAsInt();
+				String vkey = p.get("key").getAsString();
+				vote.put("id", vid);
+				vote.put("num_votes", vvotes);
+				vote.put("key", vkey);
+				
+				collection.add(vote);
+			}
+			
+			JsonArray pointsJsonArray = annotationElement.get("points").getAsJsonArray();
+			ArrayList<Float> pointsArray = new ArrayList<Float>();
+			Iterator<JsonElement> pointIter = pointsJsonArray.iterator();
+			while (pointIter.hasNext()){
+				JsonElement p = pointIter.next();
+				Float pf = p.getAsFloat();
+				if (pf != null) {
+					pointsArray.add(pf);
+				}
+			}
+			
+			finalAnnotation.put("result", collection);
+			finalAnnotation.put("points", pointsArray);
+			
+			return finalAnnotation;
+		}
+		return null;
+	}
 
 	public Map<String, Object> extractOuterAnnotation(JsonObject annotationElement) {
 
@@ -433,8 +480,14 @@ public class Util {
 			finalAnnotation.put("status", status);
 
 			JsonElement shape = annotationElement.get("shape");
-			Map<String, Object> shapesMap = extractAnnotation((JsonObject)shape);
-
+			Map<String, Object> shapesMap;
+			
+			if (type.equals("poll_result")) {
+				shapesMap = extractPollResultAnnotation((JsonObject)shape);
+			} else {
+				shapesMap = extractAnnotation((JsonObject)shape);
+			}
+			
 			if (shapesMap != null) {
 				finalAnnotation.put("shapes", shapesMap);
 			}
diff --git a/bigbluebutton-apps/build.gradle b/bigbluebutton-apps/build.gradle
index a1843446baeddd40821a5465a198c90b6ae6220e..e8296558ca14b42e18e538ab7a6fe52675c703ee 100755
--- a/bigbluebutton-apps/build.gradle
+++ b/bigbluebutton-apps/build.gradle
@@ -112,7 +112,7 @@ dependencies {
    compile 'com.google.code.gson:gson:1.7.1'
    providedCompile 'org.apache.commons:commons-lang3:3.2'
 
-  compile 'org.bigbluebutton:bbb-common-message:0.0.6'
+  compile 'org.bigbluebutton:bbb-common-message:0.0.7'
 }
 
 test {
diff --git a/bigbluebutton-apps/src/main/java/org/bigbluebutton/red5/client/WhiteboardClientMessageSender.java b/bigbluebutton-apps/src/main/java/org/bigbluebutton/red5/client/WhiteboardClientMessageSender.java
index 7f8b4f4f5f38d811413c38d1314bcb1c2a6409bc..f5fd992a2ce573711632ae17e276ff95c4ab41f7 100755
--- a/bigbluebutton-apps/src/main/java/org/bigbluebutton/red5/client/WhiteboardClientMessageSender.java
+++ b/bigbluebutton-apps/src/main/java/org/bigbluebutton/red5/client/WhiteboardClientMessageSender.java
@@ -94,8 +94,7 @@ public class WhiteboardClientMessageSender {
 		
 	}
 
-	private void processGetWhiteboardShapesReplyMessage(
-			GetWhiteboardShapesReplyMessage msg) {
+	private void processGetWhiteboardShapesReplyMessage(GetWhiteboardShapesReplyMessage msg) {
 
 		Map<String, Object> args = new HashMap<String, Object>();
 		args.put("whiteboardId", msg.whiteboardId);
@@ -110,13 +109,11 @@ public class WhiteboardClientMessageSender {
 		+ message.get("msg").toString() + "\n");
 
 		//directed message
-		DirectClientMessage m = new DirectClientMessage(msg.meetingId,
-				msg.requesterId, "WhiteboardRequestAnnotationHistoryReply", message);
+		DirectClientMessage m = new DirectClientMessage(msg.meetingId, msg.requesterId, "WhiteboardRequestAnnotationHistoryReply", message);
 		service.sendMessage(m);
 	}
 
-	private void processIsWhiteboardEnabledReply(
-			IsWhiteboardEnabledReplyMessage msg) {
+	private void processIsWhiteboardEnabledReply(IsWhiteboardEnabledReplyMessage msg) {
 		Map<String, Object> args = new HashMap<String, Object>();	
 		args.put("enabled", msg.enabled);