diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/SharedNotesModel.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/SharedNotesModel.scala
index 157a59dbc5c31ddfa4a9bff17d264a84e3ed7c78..0ec9b9e57c8da4b538d4264a574a497b474736c3 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/SharedNotesModel.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/SharedNotesModel.scala
@@ -52,11 +52,6 @@ class SharedNotesModel extends SystemConfiguration {
           redo
         }
       }
-      case "CLEAR" => {
-        undoPatches = List[(String, String)]()
-        redoPatches = List[(String, String)]()
-        patcher.custom_patch_make(document, "")
-      }
     }
 
     val patchObjects = patcher.patch_fromText(patchToApply)
@@ -77,6 +72,13 @@ class SharedNotesModel extends SystemConfiguration {
     (patchCounter, patchToApply, !undoPatches.isEmpty, !redoPatches.isEmpty)
   }
 
+  def clearNote(noteId: String): Option[NoteReport] = {
+    val note = notes(noteId)
+    val patchCounter = note.patchCounter + 1
+    notes(noteId) = new Note(note.name, "", patchCounter, List[(String, String)](), List[(String, String)]())
+    getNoteReport(noteId)
+  }
+
   def createNote(noteName: String = ""): (String, Boolean) = {
     var noteId = 0
     if (removedNotes.isEmpty) {
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/sharednotes/ClearSharedNotePubMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/sharednotes/ClearSharedNotePubMsgHdlr.scala
new file mode 100644
index 0000000000000000000000000000000000000000..b5272d6dc2dd90c3086db9323f64703a3254d017
--- /dev/null
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/sharednotes/ClearSharedNotePubMsgHdlr.scala
@@ -0,0 +1,29 @@
+package org.bigbluebutton.core.apps.sharednotes
+
+import org.bigbluebutton.common2.msgs._
+import org.bigbluebutton.core.running.OutMsgRouter
+
+trait ClearSharedNotePubMsgHdlr {
+  this: SharedNotesApp2x =>
+
+  val outGW: OutMsgRouter
+
+  def handleClearSharedNotePubMsg(msg: ClearSharedNotePubMsg): Unit = {
+
+    def broadcastEvent(msg: ClearSharedNotePubMsg, noteReport: NoteReport): Unit = {
+      val routing = Routing.addMsgToClientRouting(MessageTypes.BROADCAST_TO_MEETING, liveMeeting.props.meetingProp.intId, msg.header.userId)
+      val envelope = BbbCoreEnvelope(SyncSharedNoteEvtMsg.NAME, routing)
+      val header = BbbClientMsgHeader(SyncSharedNoteEvtMsg.NAME, liveMeeting.props.meetingProp.intId, msg.header.userId)
+
+      val body = SyncSharedNoteEvtMsgBody(msg.body.noteId, noteReport)
+      val event = SyncSharedNoteEvtMsg(header, body)
+      val msgEvent = BbbCommonEnvCoreMsg(envelope, event)
+      outGW.send(msgEvent)
+    }
+
+    liveMeeting.notesModel.clearNote(msg.body.noteId) match {
+      case Some(noteReport) => broadcastEvent(msg, noteReport)
+      case None             => log.warning("Could not find note " + msg.body.noteId)
+    }
+  }
+}
\ No newline at end of file
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/sharednotes/SharedNotesApp2x.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/sharednotes/SharedNotesApp2x.scala
index 579b1e8e10d6c09d2d5109957da4ddac974e3404..329653c0ec19385829f87810b64c2a8c458d36d3 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/sharednotes/SharedNotesApp2x.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/sharednotes/SharedNotesApp2x.scala
@@ -10,6 +10,7 @@ class SharedNotesApp2x(
 )(implicit val context: ActorContext)
     extends GetSharedNotesPubMsgHdlr
     with SyncSharedNotePubMsgHdlr
+    with ClearSharedNotePubMsgHdlr
     with UpdateSharedNoteReqMsgHdlr
     with CreateSharedNoteReqMsgHdlr
     with DestroySharedNoteReqMsgHdlr {
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/sharednotes/UpdateSharedNoteReqMsgHdlr.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/sharednotes/UpdateSharedNoteReqMsgHdlr.scala
index 0ba8e20ea632fdc59b8bf75124a5cf6e22ded6e3..505e7847fbc51514db8910884587ce70195e714e 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/sharednotes/UpdateSharedNoteReqMsgHdlr.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/sharednotes/UpdateSharedNoteReqMsgHdlr.scala
@@ -25,7 +25,6 @@ trait UpdateSharedNoteReqMsgHdlr {
       case "PATCH" => msg.header.userId
       case "UNDO"  => liveMeeting.notesModel.SYSTEM_ID
       case "REDO"  => liveMeeting.notesModel.SYSTEM_ID
-      case "CLEAR" => liveMeeting.notesModel.SYSTEM_ID
       case _       => return
     }
 
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala
index b126640d452717f6a7154c7a0eee5b1bdf46777c..2034e71edbbb51854a0c2eddf5926c025a531f68 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/pubsub/senders/ReceivedJsonMsgHandlerActor.scala
@@ -209,6 +209,8 @@ class ReceivedJsonMsgHandlerActor(
         routeGenericMsg[GetSharedNotesPubMsg](envelope, jsonNode)
       case SyncSharedNotePubMsg.NAME =>
         routeGenericMsg[SyncSharedNotePubMsg](envelope, jsonNode)
+      case ClearSharedNotePubMsg.NAME =>
+        routeGenericMsg[ClearSharedNotePubMsg](envelope, jsonNode)
       case UpdateSharedNoteReqMsg.NAME =>
         routeGenericMsg[UpdateSharedNoteReqMsg](envelope, jsonNode)
       case CreateSharedNoteReqMsg.NAME =>
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala
index 97803287b221446fce497c87ebaa9cc45481e34d..a444195df9a790c4ee993cff68a1fbedc030f3f8 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala
@@ -278,6 +278,7 @@ class MeetingActor(
       // SharedNotes
       case m: GetSharedNotesPubMsg => sharedNotesApp2x.handleGetSharedNotesPubMsg(m)
       case m: SyncSharedNotePubMsg => sharedNotesApp2x.handleSyncSharedNotePubMsg(m)
+      case m: ClearSharedNotePubMsg => sharedNotesApp2x.handleClearSharedNotePubMsg(m)
       case m: UpdateSharedNoteReqMsg => sharedNotesApp2x.handleUpdateSharedNoteReqMsg(m)
       case m: CreateSharedNoteReqMsg => sharedNotesApp2x.handleCreateSharedNoteReqMsg(m)
       case m: DestroySharedNoteReqMsg => sharedNotesApp2x.handleDestroySharedNoteReqMsg(m)
diff --git a/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/SharedNotesMsgs.scala b/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/SharedNotesMsgs.scala
index 825065c09c066fc48b2079808e22d5baea4616fe..0d3057e072e756666807f0ec2aae2fc2eaabf738 100644
--- a/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/SharedNotesMsgs.scala
+++ b/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/SharedNotesMsgs.scala
@@ -29,6 +29,10 @@ object UpdateSharedNoteReqMsg {val NAME = "UpdateSharedNoteReqMsg"}
 case class UpdateSharedNoteReqMsg(header: BbbClientMsgHeader, body: UpdateSharedNoteReqMsgBody) extends StandardMsg
 case class UpdateSharedNoteReqMsgBody(noteId: String, patch: String, operation: String)
 
+object ClearSharedNotePubMsg {val NAME = "ClearSharedNotePubMsg"}
+case class ClearSharedNotePubMsg(header: BbbClientMsgHeader, body: ClearSharedNotePubMsgBody) extends StandardMsg
+case class ClearSharedNotePubMsgBody(noteId: String)
+
 object CreateSharedNoteReqMsg {val NAME = "CreateSharedNoteReqMsg"}
 case class CreateSharedNoteReqMsg(header: BbbClientMsgHeader, body: CreateSharedNoteReqMsgBody) extends StandardMsg
 case class CreateSharedNoteReqMsgBody(noteName: String)
diff --git a/bigbluebutton-client/src/org/bigbluebutton/core/model/SharedNotes.as b/bigbluebutton-client/src/org/bigbluebutton/core/model/SharedNotes.as
index 58bb28a04fc80aad78e77b82790bc17df900b16e..9b17d673cef5f29ac50e646566660ffa8fe096e7 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/core/model/SharedNotes.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/core/model/SharedNotes.as
@@ -10,7 +10,9 @@ package org.bigbluebutton.core.model
     public var numAdditionalSharedNotes:Number = 0;
     [Bindable]
     public var mainNoteVisible:Boolean = false;
-    
+    [Bindable]
+    public var isMaxNumOfNotes:Boolean = true;
+
     private var activeNotesIds:ArrayCollection = new ArrayCollection();
     
     public function SharedNotes() {
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/events/SharedNotesEvent.as b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/events/SharedNotesEvent.as
index 4b30270b5883528f2c8992e55e6d1e51923c4411..6f180d1f17691da4a4e6c51e1083f05cdebbb209 100644
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/events/SharedNotesEvent.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/events/SharedNotesEvent.as
@@ -37,6 +37,7 @@ package org.bigbluebutton.modules.sharednotes.events
 		public static const RECEIVE_PATCH_EVENT:String = 'SHARED_NOTES_RECEIVE_PATCH';
 		public static const SYNC_NOTE_REQUEST_EVENT:String = 'SYNC_NOTE_REQUEST_EVENT';
 		public static const SYNC_NOTE_REPLY_EVENT:String = 'SYNC_NOTE_REPLY_EVENT';
+		public static const CLEAR_NOTE_REQUEST_EVENT:String = 'CLEAR_NOTE_REQUEST_EVENT';
 
 		public var noteName:String = "";
 
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/managers/SharedNotesManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/managers/SharedNotesManager.as
index 2299f0a7cb69a40c0d65d2fbb1ee209709989d95..e158fa2b42e5785ddbeeebd39fc1586a30d18a71 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/managers/SharedNotesManager.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/managers/SharedNotesManager.as
@@ -71,5 +71,10 @@ package org.bigbluebutton.modules.sharednotes.managers {
 			var noteId:String = e.payload.noteId;
 			sender.sharedNotesSyncNoteRequest(noteId);
 		}
+
+		public function sharedNotesClearNoteRequest(e:SharedNotesEvent):void {
+			var noteId:String = e.payload.noteId;
+			sender.sharedNotesClearNoteRequest(noteId);
+		}
 	}
 }
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/maps/SharedNotesEventMap.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/maps/SharedNotesEventMap.mxml
index e951d5d79f0c881068a277d844d57e663dfc3991..abca3e38acff65f901fad652f0357bd28634ca5d 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/maps/SharedNotesEventMap.mxml
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/maps/SharedNotesEventMap.mxml
@@ -95,6 +95,10 @@
 		<EventHandlers type="{SharedNotesEvent.SYNC_NOTE_REQUEST_EVENT}">
 			<MethodInvoker generator="{SharedNotesManager}" method="sharedNotesSyncNoteRequest" arguments="{event}"/>
 		</EventHandlers>
+
+		<EventHandlers type="{SharedNotesEvent.CLEAR_NOTE_REQUEST_EVENT}">
+			<MethodInvoker generator="{SharedNotesManager}" method="sharedNotesClearNoteRequest" arguments="{event}"/>
+		</EventHandlers>
 	
 		<EventHandlers type="{BBBEvent.RECONNECT_DISCONNECTED_EVENT}">
 			<MethodInvoker generator="{SharedNotesEventMapDelegate}" method="destroyAllAdditionalNotes" arguments="{event}"/>
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/services/MessageSender.as b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/services/MessageSender.as
index f3af53e39b6f3ecf857481dab6fcdd00a8cc419f..d6d6e59a4d2d434883c6e01ce400722029fb8e48 100644
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/services/MessageSender.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/services/MessageSender.as
@@ -103,5 +103,19 @@ package org.bigbluebutton.modules.sharednotes.services {
         JSON.stringify(message)
       );
     }
+
+    public function sharedNotesClearNoteRequest(noteId: String):void {
+      var message:Object = {
+        header: {name: "ClearSharedNotePubMsg", meetingId: UsersUtil.getInternalMeetingID(), userId: UsersUtil.getMyUserID()},
+        body: {noteId: noteId}
+      };
+
+      var _nc:ConnectionManager = BBB.initConnectionManager();
+      _nc.sendMessage2x(
+        onSuccessDebugger,
+        onErrorDebugger,
+        JSON.stringify(message)
+      );
+    }
   }
 }
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/SharedNotesWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/SharedNotesWindow.mxml
index 61382de90a98547e1bd6f4b929da250a86025263..9477b116223737ea2e7acf144256e6b47b4fe76d 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/SharedNotesWindow.mxml
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/SharedNotesWindow.mxml
@@ -86,7 +86,6 @@
 			private var lastAuthors:Object = new Object();
 
 			[Bindable] protected var options:SharedNotesOptions;
-			[Bindable] private var _isNotesLimit:Boolean = true;
 			[Bindable] private var usersTyping:String = "";
 
 			private var sendUpdateTimer:Timer;
@@ -215,13 +214,13 @@
 				return _noteId;
 			}
 
-			public function addRemoteDocument(notes:Object, isNotesLimit:Boolean):void{
+			public function addRemoteDocument(notes:Object, isMaxNumOfNotes:Boolean):void{
 				var note:Object = notes[noteId];
 				_document = note["document"];
 				_noteName = note["name"];
 				_lastPatch = note["patchCounter"];
 				richTextEditor.htmlText = _document;
-				_isNotesLimit = isNotesLimit;
+				LiveMeeting.inst().sharedNotes.isMaxNumOfNotes = isMaxNumOfNotes;
 				if (!this.enabled) this.enabled = true;
 				updateTitle();
 				updateUndoRedoButtons(note["undo"], note["redo"]);
@@ -302,11 +301,11 @@
 			}
 
 			private function handleNoteCreated(e:SharedNotesEvent):void {
-				_isNotesLimit = e.payload.isNotesLimit;
+				LiveMeeting.inst().sharedNotes.isMaxNumOfNotes = e.payload.isNotesLimit;
 			}
 
 			private function handleNoteDestroyed(e:SharedNotesEvent):void {
-				_isNotesLimit = e.payload.isNotesLimit;
+				LiveMeeting.inst().sharedNotes.isMaxNumOfNotes = e.payload.isNotesLimit;
 			}
 
 			private function updateUndoRedoButtons(undo:Boolean, redo:Boolean):void {
@@ -418,10 +417,10 @@
 			protected function btnSettings_clickHandler(event:MouseEvent):void {
 				var menuData:Array = [];
 				menuData.push({
-						label: _isNotesLimit ?
+						label: LiveMeeting.inst().sharedNotes.isMaxNumOfNotes ?
 								ResourceUtil.getInstance().getString('bbb.sharedNotes.limit.label') :
 								ResourceUtil.getInstance().getString('bbb.sharedNotes.new.label'),
-						enabled: !_isNotesLimit,
+						enabled: !LiveMeeting.inst().sharedNotes.isMaxNumOfNotes,
 						handler: function():void {
 								newNoteHandler();
 							}
@@ -500,10 +499,9 @@
 
 			private function alertClear(event:CloseEvent):void {
 				if (event.detail == Alert.YES) {
-					var sendPatchEvent:SendPatchEvent = new SendPatchEvent();
-					sendPatchEvent.noteId = noteId;
-					sendPatchEvent.operation = "CLEAR";
-					_dispatcher.dispatchEvent(sendPatchEvent);
+					var clearNoteEvent:SharedNotesEvent = new SharedNotesEvent(SharedNotesEvent.CLEAR_NOTE_REQUEST_EVENT);
+					clearNoteEvent.payload["noteId"] = noteId;
+					_dispatcher.dispatchEvent(clearNoteEvent);
 				}
 			}
 
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/components/SharedNotesRichTextEditor.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/components/SharedNotesRichTextEditor.mxml
index c8111db4837def15d8a58fcbf219830ce50d7c49..b10042db3cfd47c35ce5e7a1743b0f8a83f33761 100644
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/components/SharedNotesRichTextEditor.mxml
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/sharednotes/views/components/SharedNotesRichTextEditor.mxml
@@ -1320,7 +1320,9 @@
             <mx:ColorPicker id="colorPicker"
                     dataProvider="{colorPickerColours}"
                     swatchPanelStyleName="sharedNotesColorPickerStyle"
-                    close="setTextStyles('color');"/>
+                    close="setTextStyles('color');"
+                    visible="false"
+                    includeInLayout="false"/>
             <mx:VRule height="{alignButtons.height}"/>
             <mx:ToggleButtonBar id="alignButtons"
                     buttonWidth="20"