David, how big is the chance that FormatterToXML gets a new member variable: XalanDOMChar m_indentChar;
which is default initialized with XalanUnicode::charSpace and a public member function: void setIndentChar(XalanDOMChar ch); This way the printSpace member function would call accumContent(m_indentChar) instead of accumContent(XalanUnicode::charSpace): void FormatterToXML::printSpace(int n) { for (int i = 0; i < n; i ++) { accumContent(m_indentChar); } } I think this change is minimal to the lib, but can bring some performance and size benefits. I can post later what was the size change Here a user only needs to set setIndent(1) and as character charHTab. Many Thanks, Ovanes.