diff --git a/core/textdocumentgenerator.cpp b/core/textdocumentgenerator.cpp index f79203169..2bd896a13 100644 --- a/core/textdocumentgenerator.cpp +++ b/core/textdocumentgenerator.cpp @@ -201,15 +201,20 @@ void TextDocumentGeneratorPrivate::generateTitleInfos() } else if ( newLevel > level ) { parentNodeStack.push( parentNode ); parentNode = parentNode.lastChildElement(); - parentNode.appendChild( item ); + if ( ! parentNode.isNull() ) { + parentNode.appendChild( item ); + } level = newLevel; } else { for ( int i = level; i > newLevel; i-- ) { level--; - parentNode = parentNodeStack.pop(); + if ( ! parentNodeStack.isEmpty() ) { + parentNode = parentNodeStack.pop(); + } + } + if ( ! parentNode.isNull() ) { + parentNode.appendChild( item ); } - - parentNode.appendChild( item ); } } }