Use
  instance_eval &yld
instead of
  yld.call
?

Regards,

Sean