--- TAO.org/ACE_wrappers/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp 2010-01-18 10:29:23.000000000 +0000 +++ TAO/ACE_wrappers/TAO/orbsvcs/IFR_Service/ifr_adding_visitor.cpp 2010-01-18 09:37:33.000000000 +0000 @@ -1563,9 +1563,17 @@ // original entry, create the new one, and let the user beware. if (!node->ifr_added ()) { - prev_def->destroy (); - - return this->visit_structure (node); + // for FWD structure declaration we have not to delete the preivos one, but just add members + if (!node->ifr_fwd_added ()) + { + prev_def->destroy (); + return this->visit_structure (node); + } + else + { + ifr_adding_visitor_structure visitor (node, false); + return visitor.visit_structure (node); + }//if-else } this->ir_current_ = @@ -1914,9 +1922,17 @@ // original entry, create the new one, and let the user beware. if (!node->ifr_added ()) { - prev_def->destroy (); - - return this->visit_union (node); + // for FWD union declaration we have not to delete the preivos one, but just add members + if (!node->ifr_fwd_added()) + { + prev_def->destroy (); + return this->visit_union (node); + } + else + { + ifr_adding_visitor_union visitor (node, 0); + return visitor.visit_union (node); + } } this->ir_current_ =