Template themes which use the more recent format for the loop:
if (have_posts()): while (have_posts()): the_post();
are more flexible and allow for easier adaptation than older style templates, using:
if ($posts): foreach ($posts as $post) : start_wp();
Fortunately, a direct replacement of one control structure for the other seems to work seamlessly.