 	//
 	//--------------------------------------------------------------------------
 
+	/**
+     *  @private
+     */
+	private static function appendElements(dest:Array, src:Array):void
+	{
+		for (var i:uint = 0, argc:uint = src.length; i < argc; i++)
+		{
+			dest.push(src[i]);
+		}
+	}
+	
 	/**
      *  @private
      */

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

		return stack.join("_");

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