I've always taken great pains to be exceedingly fair, responsive, and back-bending in the way I interact with my customers. I firmly believe it's best for business long-term if you always give your customer the benefit of the doubt and treat them as you'd want to be treated.

But recently, for reasons I don't understand, I've been getting email after email from customers who are, quite frankly, being assholes to me from the very first contact. This type of customer has always existed, but in recent months the frequency that someone is a jerk to me before I even have a chance to respond has increased.

Lately, the customer starts out their email calling me names and cursing because "how dare I" release a new version of VirtualHostX a month or two (or three) after they purchased their copy. They believe that I'm somehow trying to screw them over personally by releasing a new version - something I do with regularity every 12 to 18 months.

I've always had a consistent, unwritten policy that any customer who buys one of my apps prior to a major upgrade gets a free upgrade to the new version. In fact, the same goes for any customer who emails in and complains no matter how long ago they originally purchased. I'd rather lose an upgrade sale and have a happy customer then make a few bucks and have them feel swindled.

In recent weeks though, I've had a change of heart. Chalk it up to one too many asshole customers I guess. I'm still happily providing upgrades to any one who asks. But for those who are jerks about it from the get-go, I'm instead cheerily refunding their money, deactivating their license, and nicely explaining that I'm not interested in their business.

It may be slightly passive-aggressive, but this new policy sure feels better. It's nice to not get walked all over for a change.

One thing I am going to change to try and improve the situation is add a more prominent note on my product pages explaining the upgrade policy for recent purchases. Perhaps making the policy more clear will help prevent angry emails before they're written.

Any other developers out there with similar policies? Would you react the same or handle the situation differently? I'd love to hear your feedback either in the comments or over email.