                     
                     if (numContentRows > 0)
                     {
-                        rowHeight = availableHeight / numContentRows;
+                        var splitHeight:Number = availableHeight / numContentRows;
                         
                         for (j = 0; j < numContentRows; j++)
                         {
                             row = contentRows[j];
-                            row.setActualHeight(Math.ceil(Math.max(row.height, rowHeight)));
+                            
+                            rowHeight = Math.max(row.height, splitHeight);
+                            if (!isNaN(row.maxHeight))
+                                rowHeight = Math.min(rowHeight, row.maxHeight);
+                            
+                            row.setActualHeight(Math.ceil(rowHeight));
                         }
                     }
                 }

                    
                    if (numContentCols > 0)
                    {
                        colWidth = availableWidth / numContentCols;
                        
                        for (j = 0; j < numContentCols; j++)
                        {
                            col = contentCols[j];
                            col.setActualWidth(Math.ceil(Math.max(col.width, colWidth)));
                        }
                    }
                }

                        if (constraintsDetermineWidth(elementInfo))
                            colWidth = Math.max(colWidth, extX + layoutElement.getMinBoundsWidth());
                        
                        // bound with max width of column
                        if (!isNaN(col.maxWidth))
                            colWidth = Math.min(colWidth, col.maxWidth);
                        
                        col.setActualWidth(Math.ceil(colWidth));
                    }
                }
