Index: /trunk/plugins/CharCounter/char-counter.js
===================================================================
--- /trunk/plugins/CharCounter/char-counter.js (revision 131)
+++ /trunk/plugins/CharCounter/char-counter.js (revision 149)
@@ -35,4 +35,21 @@
 }
 
+CharCounter.prototype.onMode = function (mode)
+{
+  //Hide Chars in statusbar when switching into textmode
+  switch (mode)
+  {
+    case "textmode":
+      this.charCount.style.display = "none";
+      break;
+    case "wysiwyg":
+      this.charCount.style.display = "";
+      break;
+    default:
+      alert("Mode <" + mode + "> not defined!");
+      return false;
+  }
+}
+
 CharCounter.prototype.onKeyPress = function(ev) {
     var cnt = this.updateCharCount();
Index: /trunk/inline-dialog.js
===================================================================
--- /trunk/inline-dialog.js (revision 73)
+++ /trunk/inline-dialog.js (revision 149)
@@ -9,10 +9,10 @@
   this.rootElem = document.createElement('div');
   this.rootElem.className = 'dialog';
-  this.rootElem.style.position = 'relative';
+  this.rootElem.style.position = 'absolute';
   this.rootElem.style.display  = 'none';
 
   this.width  = parseInt(this.rootElem.style.width  = this.editor._iframe.style.width);
-  this.height = parseInt(this.rootElem.style.height = this.editor._iframe.style.height);
-
+  this.height = this.rootElem.style.height = (parseInt(this.editor._iframe.style.height)+this.editor._statusBar.offsetHeight-2)+'px';
+  
   var dialog = this;
   if(typeof localizer == 'function')
@@ -67,5 +67,5 @@
       {
         dialog.width  = parseInt(dialog.rootElem.style.width  = args.editorWidth  + 'px');
-        dialog.height = parseInt(dialog.rootElem.style.height = args.editorHeight + 'px');
+        dialog.height = dialog.rootElem.style.height = (args.editorHeight+dialog.editor._statusBar.offsetHeight-2)+'px';
         dialog.onresize();
       }
@@ -94,8 +94,4 @@
   this.editor._textArea.style.display = 'none';
   this.editor._iframe.style.visibility   = 'hidden';
-  if (this.editor.config.statusBar)
-  {
-    this.editor._statusBar.innerHTML = '&nbsp;';
-  }
   this.rootElem.style.display   = '';
 }
@@ -107,9 +103,5 @@
   this.editor._iframe.style.visibility   = this._restoreTo[1];
   this.editor.showPanels(this._restoreTo[2]);
-  if (this.editor.config.statusBar)
-  {
-    this.editor._statusBar.innerHTML = '';
-    this.editor._statusBar.appendChild(this.editor._statusBarTree);
-  }
+  
   // Restore the selection
   if(HTMLArea.is_ie)
@@ -117,4 +109,5 @@
     this._lastRange.select();
   }
+  this.editor.updateToolbar();
   return this.getValues();
 }
@@ -296,5 +289,5 @@
             if(i.checked)
             {
-              if(v.push)
+              if(v && v.push)
               {
                 v.push(i.value);
Index: /trunk/htmlarea.js
===================================================================
--- /trunk/htmlarea.js (revision 148)
+++ /trunk/htmlarea.js (revision 149)
@@ -1025,4 +1025,11 @@
   this._statusBarTree = div;
   this._statusBar.appendChild(div);
+
+  div = document.createElement("span");
+  div.innerHTML = HTMLArea._lc("You are in TEXT MODE.  Use the [<>] button to switch back to WYSIWYG.");
+  div.style.display = "none";
+  this._statusBarTextMode = div;
+  this._statusBar.appendChild(div);
+
   if (!this.config.statusBar) {
     // disable it...
@@ -1675,5 +1682,6 @@
       if (this.config.statusBar)
       {
-        this._statusBar.innerHTML = HTMLArea._lc("You are in TEXT MODE.  Use the [<>] button to switch back to WYSIWYG.");
+        this._statusBarTree.style.display = "none";
+        this._statusBarTextMode.style.display = "";
       }
 
@@ -1699,6 +1707,6 @@
       if (this.config.statusBar)
       {
-        this._statusBar.innerHTML = '';
-        this._statusBar.appendChild(this._statusBarTree);
+        this._statusBarTree.style.display = "";
+        this._statusBarTextMode.style.display = "none";
       }
 
