diff --git a/alib2data/src/rte/common/RTEFromXMLParser.h b/alib2data/src/rte/common/RTEFromXMLParser.h
index 896753a20dcc82796a24a3c87f11ab46ae18c2e1..e390870b2a599b1e4e3588139c9429007a59593e 100644
--- a/alib2data/src/rte/common/RTEFromXMLParser.h
+++ b/alib2data/src/rte/common/RTEFromXMLParser.h
@@ -156,7 +156,7 @@ std::rvalue_ref < FormalRTESymbolAlphabet < SymbolType, RankType > > RTEFromXMLP
 		elements.push_back ( parseFormalRTESymbol < SymbolType, RankType > ( input ) );
 
 	if ( elements.size() != ( size_t ) symbol.getRank( ) )
-		throw exception::CommonException ( "Parsed symbol's rank and number of children differ." );
+		throw exception::CommonException ( "Parsed symbol's rank and number of children differ. Rank is " + std::to_string ( symbol.getRank ( ) ) + ", number of children is " + std::to_string ( elements.size ( ) ) + "." );
 
 	for ( std::rvalue_ref < FormalRTESymbol < SymbolType, RankType > > & element : elements )
 		ret->appendElement ( element );