                         extY -= elementInfo.top;
                     
                     if (elementInfo.baselineBoundary)
+                    {
                         topIndex = elementInfo.baselineIndex;
+                        
+                        // add baseline offset.
+                        extY += Number(rowBaselines[topIndex][0]); 
+                            
+                        // add maxAscent. maxAscent is 0 if not specified on the row.
+                        if (rowMaxAscents)
+                            extY += rowMaxAscents[topIndex];
+                    }
                     else
+                    {
                         topIndex = 0;
+                    }
                 }
                 
                 maxExtent = extY + preferredHeight;

        
        _constraintRows = temp;
        rowsObject = obj;
        
        if (target)
        {

        }
        
        // match rows.
        if (topBoundary || bottomBoundary || baselineBoundary)
        {
            var rowIndex:Object;
