Have you tried talking to them about this? I know it can be uncomfortable, but if you resolve to be firm about it, it might be the best thing for your friendship. I had a friend - best man at my wedding - who was cheap, thieving cheap. One time we went to a pizza joint and the group all agreed to go in on a Pizza and a pitcher of beer. Not him, he said he would get his own lunch. He got a sub and a bottle of beer. Then we all sat down, and he promptly ate a good portion of the pizza, helped himself to the pitcher of beer, and only ate half his sub, packing the rest to take home. DW was fuming. I told her I would talk to him without the others around. I laid into him politely but frankly the next day. He was pretty defensive, and pretty mad. He tried every way to deny his actions, and I simply said it didn't matter what his intent was, how it appeared to everyone else was he was a skinflint cheapskate who would rather get over on $5 worth of food rather than respect his friends. After sulking for a week, he came around again and did a much better job of taking care of his share of the bill. Never really apologized, and still was pretty cheap, but at least we weren't covering his tip and subsidizing his meals.