That's also fixed on trunk.
Unrelated: using fillchar on managed types (as you do in proc_appvariant) is always very dangerous, and wrong in your program. The reason is that with the result variable this can result in memory leaks in case the compiler passes a temp that was already used before and still contains valid data as result (because the Items field won't be finalized in that case). If you want to intiialize it in a safe way, use "result := default(TAppVariant);".