hm... probably it's some lite-c quirk with how the pointer gets converted to the var skill. you could try to cast the pointer somehow. or use your method that works.