      */
     public function insertRows(startRow:int, count:int):void
     {
+        var startNode:GridRowNode = rowList.findNearest(startRow);
+        var tempNode:GridRowNode;
+        
+        // shift indices by count.
+        if (startNode)
+            tempNode = startNode.next;
+        while (tempNode)
+        {
+            tempNode.rowIndex += count;
+            tempNode = tempNode.next;
+        }
+        
+        this.rowCount += count;
     }
     
     /**

     */
    public function setCellHeight(row:int, col:int, height:Number):void
    {
        var node:GridRowNode = rowList.find(row);
        if (!node)
            node = rowList.insert(row);
        
        if (node)
        {

     */
    public function setRowHeight(row:int, height:Number):void
    {
        if (!isNaN(fixedRowHeight))
            return;
        
        var node:GridRowNode = rowList.find(row);
        
        if (node)
