Hm, this checking for 0 looks weird