Yeah! perfect! :) That's right... the issue is with the free variable continuing to hold a value even if no free entry was found! Thanks. Will update the commits soon...

Thanks again for your help