Math Genius: http://www.twodimes.net/poker/

Opponent without a diamond:

http://twodimes.net/h/?z=1289683
pokenum -h 5d 6d - ac as -- 4d 3d 9c
Holdem Hi: 990 enumerated boards containing 9c 4d 3d
cards win %win lose %lose tie %tie EV
557 56.26 433 43.74 0 0.00 0.563
:As: :Ac: 433 43.74 557 56.26 0 0.00 0.437

Opponent with a diamond:

http://twodimes.net/h/?z=1289684
pokenum -h 5d 6d - ad as -- 4d 3d 9c
Holdem Hi: 990 enumerated boards containing 9c 4d 3d
cards win %win lose %lose tie %tie EV
521 52.63 469 47.37 0 0.00 0.526
:As: :Ad: 469 47.37 521 52.63 0 0.00 0.474

There's already $15 in the pot before he pushes. After he pushes, the pot you can win is $59. You have to call $40 to take it to a showdown.

At $59-to-$40, you're getting almost 3-to-2 on the call.

Opponent with a set with a diamond (worst possible case):

http://twodimes.net/h/?z=1289692
pokenum -h 5d 6d - 9d 9s -- 4d 3d 9c
Holdem Hi: 990 enumerated boards containing 9c 4d 3d
cards win %win lose %lose tie %tie EV
402 40.61 588 59.39 0 0.00 0.406
588 59.39 402 40.61 0 0.00 0.594

You're only a 3-to-2 dog, worst case.

I think you must call. If they flip over anything other than a set, you are making money on the call. And even if they flip over a set, you are not losing any money on the call.