Once Upon a Time in America
(1984)

POOPER:
Max (James Woods) wasn't really dead, but had taken on a new identity.  Noodles (Robert De Niro) learns that he has nothing to feel guilty about. He didn't cause Max's death (as he had feared) and it was Max, not Noodles, who had betrayed and was responsible for the deaths of their friends.

LONGER VERSION:
Since faking his death in 1934, Max has adopted the name Bailey. He has become rich and successful, and has risen to the Cabinet post of Secretary of Commerce. During this time, Max/Bailey has carried on a lengthy affair with Deborah (Elizabeth McGovern), the love of Noodles' life.

In the meantime, Noodles has lived quietly in Buffalo, New York, grieving for Max, and feeling needlessly guilty about causing Max's death.

By 1968, Max/Bailey has gotten into huge trouble due to corruption. He faces indictment, and knows the Mob will soon have him executed to prevent him from testifying against them. Max/Bailey is tired of waiting to be murdered, so he summons Noodles to his home. He explains how he tricked and betrayed Noodles all those years ago, and hopes that, as his friend, Noodles will take this opportunity for revenge. He knows he must die soon, and wants Noodles to be the one to kill him.

But by now, Noodles is a tired old man who hasn't used a gun or committed a crime in many years. He has no desire for revenge, and turns down the chance to kill Max. Indeed, Noodles never fully acknowledges that the man before him IS his old friend Max- he addresses the man only as "Mr. Bailey."

Noodles leaves Bailey's mansion through a hidden panel, and begins to walk away from the estate. A garbage truck is passing by Max/Bailey's estate, and we briefly see Max's figure pass behind it. The garbage truck drives past Noodles, and we see the truck grinding up its contents. We are led to believe that Max/Bailey has commiited suicide by throwing himself into the back of the garbage truck. 

Thanks, Michael N. and John L.!

IMDB