anchor.diff:  				     end,NewComps),
   	    NewComps3 = simplify_comps(NewComps2),
   	    check_unique_tags(S, NewComps3),
  -	    complist_as_tuple(is_erule_per(S#state.erule), NewComps3);
  +	    complist_as_tuple(NewComps3);
   	Dupl ->
   	    throw({error,{asn1,{duplicate_choice_alternatives,Dupl}}})
       end;
  
positive.code: 	    %% the involved class removed, as the class of the object
  	    %% set.
  	    CompListWithTblInf = get_tableconstraint_info(S,Type,NewComps2),
  	    %% If encoding rule is in the PER family the Root Components
  	    %% after the second extension mark should be encoded before
  	    %% all extensions i.e together with the first Root components
  
  	    NewComps3 = textual_order(CompListWithTblInf),
  	    NewComps4 = simplify_comps(NewComps3),
  	    CompListTuple =
  		complist_as_tuple(is_erule_per(S#state.erule), NewComps4),
  	    {CRelInf,CompListTuple};
  	Dupl ->
  	    throw({error,{asn1,{duplicate_components,Dupl}}})
      end.
  
  complist_as_tuple(Per,CompList) ->
      complist_as_tuple(Per,CompList,[],[],[],root).
  
  complist_as_tuple(Per,[#'EXTENSIONMARK'{}|T],Acc,Ext,Acc2,root) ->
      complist_as_tuple(Per,T,Acc,Ext,Acc2,ext);
  complist_as_tuple(Per,[#'EXTENSIONMARK'{}|T],Acc,Ext,Acc2,ext) ->
      complist_as_tuple(Per,T,Acc,Ext,Acc2,root2);
  complist_as_tuple(_Per,[#'EXTENSIONMARK'{}|_T],_Acc,_Ext,_Acc2,root2) ->
      throw({error,{asn1,{too_many_extension_marks}}});
  complist_as_tuple(Per,[C|T],Acc,Ext,Acc2,root) ->
      complist_as_tuple(Per,T,[C|Acc],Ext,Acc2,root);
  complist_as_tuple(Per,[C|T],Acc,Ext,Acc2,ext) ->
      complist_as_tuple(Per,T,Acc,[C|Ext],Acc2,ext);
  complist_as_tuple(Per,[C|T],Acc,Ext,Acc2,root2) ->
      complist_as_tuple(Per,T,Acc,Ext,[C|Acc2],root2);
  complist_as_tuple(_Per,[],Acc,_Ext,_Acc2,root) ->
      lists:reverse(Acc);
  complist_as_tuple(_Per,[],Acc,Ext,_Acc2,ext) ->
      {lists:reverse(Acc),lists:reverse(Ext)};
  %%complist_as_tuple(_Per = true,[],Acc,Ext,Acc2,root2) ->
  %%    {lists:reverse(Acc)++lists:reverse(Acc2),lists:reverse(Ext)};
  complist_as_tuple(_Per,[],Acc,Ext,Acc2,root2) ->
      {lists:reverse(Acc),lists:reverse(Ext),lists:reverse(Acc2)}.
  
  is_erule_per(per) -> true;
  is_erule_per(uper) -> true;
  is_erule_per(ber) -> false.
  
  expand_components(S, [{'COMPONENTS OF',Type}|T]) ->
      CompList = expand_components2(S,get_referenced_type(S,Type#type.def)),
  
negative.code:     [H|take_only_rootset(T)].
  
  check_unique_sequence_tags(S,CompList) ->
      TagComps = case complist_as_tuple(CompList) of
  		   {R1,Ext,R2} ->
  		       R1 ++ [C#'ComponentType'{prop='OPTIONAL'}||
  				 C = #'ComponentType'{} <- Ext]++R2;
  