             }
         }
 
-        // now update the field/highlights with the new contents
+        // now update the bitmap with the new contents
+        _bitmap.bitmapData.lock();
+        var srect :Rectangle = new Rectangle(0, 0, _charWidth, _charHeight);
+        var dpoint :Point = new Point();
+        var drect :Rectangle = new Rectangle(0, 0, _charWidth, _charHeight);
         for (yy = bounds.top; yy < bounds.bottom; yy++) {
             for (xx = bounds.left; xx < bounds.right; xx++) {
                 var obj :Object = combined[(yy - bounds.y) * bounds.width + (xx - bounds.x)];

            var shape :Shape = new Shape();
            shape.graphics.lineStyle(1, color);
            shape.graphics.drawRect(0, 0, _charWidth*region.width, _charHeight*region.height);
            shape.x = _x + _charWidth*region.x;
            shape.y = _y + _charHeight*region.y;
            addChild(shape);

            // remove it after a second

        var mousePad :Sprite = new Sprite();
        addChild(mousePad);
        mousePad.graphics.beginFill(0x0, 0.0);
        mousePad.graphics.drawRect(0, 0, _bitmap.width, _bitmap.height);
        mousePad.graphics.endFill();
        mousePad.x = _bitmap.x;
        mousePad.y = _bitmap.y;
        mousePad.addEventListener(MouseEvent.MOUSE_DOWN, sendMouseMessage);
        mousePad.addEventListener(MouseEvent.MOUSE_UP, sendMouseMessage);
        addEventListener(KeyboardEvent.KEY_DOWN, sendKeyMessage);
