Andreas, > > > > \tlp_new:N \l_tmp_tlp > ^^^^^^^^^^ > ;-) > I am doing this mistake frequently. But there is only a > \tlp_clear_new:N. Maybe there really should exist a \tlp_new:N. hm yes, it is somewhat inconsistent to have the tlp initialisation to take a default value while normally that isn't the case. have added \tlp_new:N (which is equiv to \tlp_new:Nn #1 {} ) > > \prop_new:N \g_foo_prop > > > > \tlp_set:Nn \l_tmp_tlp {\g_foo_prop} > > > > \prop_gput:Ooo \l_tmp_tlp ... > > > Hmm... But this could be done with \prop_gput:Noo as well. that could only be done if you know that \prop_gput:Noo expand its argument internally due to its implementation and you use this fact. so you use a feature of the implementation which may not be there tomorrow just assume for a moment we would built in checks for variables to be checked for type or local global state then passing "\l_tmp_tlp" would fail on both accounts (not that i propose that) cheers frank