How can I get rid of this goto?

Help! It’s late and I don’t see a good way to get rid of this goto construct:

private void advanceTheTimeCursor(
Func<DateTime> nextTime,
Action uponSuccessfulAdvancement)
{
loop:
var t = nextTime();
if (t > reference) return;
uponSuccessfulAdvancement();
pastToPresentCursor = t;
goto loop;
}

I kinda like it, but somebody said somewhere gotos are considered harmful…