     {
 		var stack:Array = [ lang ];
 		
-        Array.prototype.push.apply(stack, extended_langs);
+        appendElements(stack, extended_langs);
 		
         if (script != "")
             stack.push(script);

	//
	//--------------------------------------------------------------------------

	/**
     *  @private
     */

        if (region != "")
            stack.push(region);
		
        appendElements(stack, variants);
		
        for (var i:String in extensions)
        {
			if (extensions.hasOwnProperty(i))
            {
				stack.push(i);
				appendElements(stack, extensions[i]);
			}
		}
		
        if (privates.length > 0)
        {
			stack.push("x");
			appendElements(stack, privates);
		}

		return stack.join("_");
