Which is the difference between:

  1. "I'm having an old friend for dinner"

  2. "I'm having an old friend at dinner"

"Having anyone for dinner" means you're meeting someone, right?

Using "for" does not necessarily mean you're going to eat.

The sentence is said by the character Hannibal Lecter, a cannibale, at "The Silence of the lambs"'s final scene: https://www.youtube.com/watch?v=sbJ89LFheTs

Said by Dr. Lecter, the sentence is a ambiguous:

  1. Dr. Lecter is going to eat his "old friend".
  2. Dr. Lecter is meeting and old friend for dinner, not eating him.

But when it's said by a non-cannibal, are correct both interpretations of "having something for dinner"?:

  1. You're eating something for dinner (e.g. I'm having chicken with fava beans for dinner)
  2. You're meeting someone for dinner. (e.g. I'm having friends for dinner, we'll eat pizza with a nice Chianti)
  • 3
    Remember that Hannibal Lecter was a cannibale. – user 66974 Feb 19 at 10:21
  • 1
    "at dinner" isn't idiomatic in this context: if you meet someone for dinner it means you arrange to have dinner together, while if you meet someone at lunch/dinner it means you run into them on your lunch break or in the restaurant or something accidental like that. You also have food for dinner, but that's a separate meaning. A good dictionary will have more examples. – Stuart F Feb 19 at 10:58
  • 1
    The pun ranks alongside the killer comma-drop in << "Lets eat, Bob" >>. << "I'm having an old friend for dinner" >> is reasonable (I checked with my wife; I wasn't too impressed) in the UK, but probably more idiomatic (ie used) in the US. We're both agreed that << "I'm having an old friend over for dinner" >> sounds much more natural. // (2) is, as Stuart implies, at least borderline unacceptable. – Edwin Ashworth Feb 19 at 11:18
  • 1
    @user66974 Eat the e at the end of cannibal. In the context of this spooky movie, the double entendre is clearly purposeful. – Xanne Feb 19 at 12:12
  • I saw an old friend at dinner. – Lambie Feb 21 at 18:21

Having been asked to post the contents of a comment as an answer I am doing so even though it is almost a duplicate of the answer by Mr Guest to which the original comment was made. With slight adapatations the text of the original comment was:

Not only Americans but also British people say "I'm having a friend to dinner" although it sounds rather formal. "Having a friend for dinner" is most usually used informally regardless of the "we're having chicken for dinner" ambiguity.


Americans say "To dinner", but the double meaning of for is too obvious to mention.

  • 3
    Not just Americans, formally British people say "I'm having a friend to dinner" as well. However "having a friend for dinner" is most usually used informally regardless of the "we're having chicken for dinner" ambiguity. – BoldBen Feb 19 at 11:13
  • In our house, breakfast is in the morning, dinner is around 1 pm, and tea is maybe 7 pm. Supper is a cup of tea and maybe a biscuit. – Michael Harvey Feb 19 at 11:39
  • 2
    My aunt used to refer to 'having friends for dinner'. My father's comment would be "Were they tough?" – Kate Bunting Feb 19 at 13:05
  • @KateBunting - my father would have said something similar - I had a posh aunt too. – Michael Harvey Feb 19 at 20:08
  • @BoldBen could you expose your answer sharing American and UK formally, Thanks in advance. – tremendows Feb 21 at 18:14

"I'm having an old friend for dinner"

This sentence is from "The Silence of the lambs" final scene

Since you are quoting something out of context, see if you misheard them. If you didn't, then, considering the scene in context, they may literally be having their friend as their meal.

"Having anyone for dinner" means you're meeting someone, right? Not necessarily what you're going to eat.

On the other hand, if you are having someone over for dinner, you are inviting them to come to your home for the meal, and this gives you a sense of meeting them as well.

Look up the idiom have (someone) over (for something).


As @srikavineehari says, the correct construction would be to have over (or have (a)round) for dinner.

I suspect "having friends for dinner" is one of those awkward inventions of those trying to sound posh whilst actually understanding little of English, probably drawn from phrases like "my friends are coming round for dinner" or "I'm hosting friends for dinner", and "I'm having friends round", which then becomes "I'm having friends for dinner".

I also don't see that the word "at" rescues the situation. Having a friend at dinner is no different from having sausages at dinner. Again, "at dinner" is probably a muddled combination of "for dinner" and "at dinner time".

Not the answer you're looking for? Browse other questions tagged or ask your own question.