diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/caption/views/TextTab.as b/bigbluebutton-client/src/org/bigbluebutton/modules/caption/views/TextTab.as
index 93771cf5aa32b44260bd4728438ad1c6a04ec453..b0509aea8fc86935eda93f42dc1d17f6b16bbda4 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/caption/views/TextTab.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/caption/views/TextTab.as
@@ -210,7 +210,10 @@ package org.bigbluebutton.modules.caption.views {
 			if (e.text.length == 1 && inputArea.selectionBeginIndex == inputArea.selectionEndIndex) {
 				_checkForOverwrite = true;
 				_lastTextInput = e.text;
-				_lastTextLength = inputArea.text.length;
+				_lastTextLength = inputArea.getInternalTextField().text.length; // ****** length is the problem *******
+				//trace("input text: '"+inputArea.text+"'  char0 " + inputArea.text.charCodeAt(0)+", char1 "+inputArea.text.charCodeAt(1));
+				//trace("** input len: "+ inputArea.text.length + ", trans len: " + currentTranscript.transcript.length + " ***");
+				//trace("** internal len: "+ inputArea.getInternalTextField().text.length + " **");
 			} else {
 				respondToTextChange(e.text, inputArea.selectionBeginIndex, inputArea.selectionEndIndex);
 			}
@@ -218,10 +221,10 @@ package org.bigbluebutton.modules.caption.views {
 		
 		private function onTranscriptTextChange(e:Event):void {
 			//trace("transcript change: " + inputArea.text);
-			
+			//trace("** input len: "+ inputArea.text.length + ", trans len: " + currentTranscript.transcript.length + " ***");
 			if (_checkForOverwrite) {
 				_checkForOverwrite = false;
-				if (inputArea.text.length > _lastTextLength) { // not an overwrite
+				if (inputArea.getInternalTextField().text.length > _lastTextLength) { // not an overwrite
 					respondToTextChange(_lastTextInput, inputArea.selectionBeginIndex-1, inputArea.selectionEndIndex-1);
 				} else {											// an overwrite
 					respondToTextChange(_lastTextInput, inputArea.selectionBeginIndex-1, inputArea.selectionEndIndex);
@@ -230,12 +233,12 @@ package org.bigbluebutton.modules.caption.views {
 				_lastTextLength = 0;
 			} else if (_checkForDeletePreviousWord) {
 				_checkForDeletePreviousWord = false;
-				respondToTextChange("", _lastSelectionIndex-(_lastTextLength-inputArea.text.length), _lastSelectionIndex);
+				respondToTextChange("", _lastSelectionIndex-(_lastTextLength-inputArea.getInternalTextField().text.length), _lastSelectionIndex);
 				_lastSelectionIndex = 0;
 				_lastTextLength = 0;
 			} else if (_checkForDeleteNextWord) {
 				_checkForDeleteNextWord = false;
-				respondToTextChange("", _lastSelectionIndex, _lastSelectionIndex+(_lastTextLength-inputArea.text.length));
+				respondToTextChange("", _lastSelectionIndex, _lastSelectionIndex+(_lastTextLength-inputArea.getInternalTextField().text.length));
 				_lastSelectionIndex = 0;
 				_lastTextLength = 0;
 			}
@@ -253,7 +256,7 @@ package org.bigbluebutton.modules.caption.views {
 				case Keyboard.BACKSPACE:
 					if (e.ctrlKey || e.altKey) {
 						_lastSelectionIndex = ei;
-						_lastTextLength = inputArea.text.length;
+						_lastTextLength = inputArea.getInternalTextField().text.length;
 						_checkForDeletePreviousWord = true;
 						return;
 					}
@@ -268,7 +271,7 @@ package org.bigbluebutton.modules.caption.views {
 				case Keyboard.DELETE:
 					if (e.ctrlKey || e.altKey) {
 						_lastSelectionIndex = si;
-						_lastTextLength = inputArea.text.length;
+						_lastTextLength = inputArea.getInternalTextField().text.length;
 						_checkForDeleteNextWord = true;
 						return;
 					}