Index: branches/release-29/php/lib/block.mtauthornext.php
===================================================================
--- branches/release-29/php/lib/block.mtauthornext.php (revision 1174)
+++ branches/release-29/php/lib/block.mtauthornext.php (revision 1333)
@@ -9,5 +9,6 @@
     static $_next_cache = array();
     if (!isset($content)) {
-        $ctx->localize(array('author', 'conditional', 'else_content'));
+        $next_author = null;
+        $ctx->localize(array('author'));
         $author = $ctx->stash('author');
         if ($author) {
@@ -25,15 +26,15 @@
                               'need_entry' => 1);
                 list($next_author) = $ctx->mt->db->fetch_authors($args);
-                if ($next_author) $_next_cache[$author_id] = $next_author;
+                if ($next_author) {
+                    $_next_cache[$author_id] = $next_author;
+                    $ctx->stash('author', $next_author);
+                } else
+                    $repeat = false;
             }
-            $ctx->stash('author', $next_author);
+        } else {
+            $repeat = false;
         }
-        $ctx->stash('conditional', isset($next_author));
-        $ctx->stash('else_content', null);
     } else {
-        if (!$ctx->stash('conditional')) {
-            $content = $ctx->stash('else_content');
-        }
-        $ctx->restore(array('author', 'conditional', 'else_content'));
+        $ctx->restore(array('author'));
     }
     return $content;
Index: branches/release-29/php/lib/block.mtauthorprevious.php
===================================================================
--- branches/release-29/php/lib/block.mtauthorprevious.php (revision 1174)
+++ branches/release-29/php/lib/block.mtauthorprevious.php (revision 1333)
@@ -9,5 +9,6 @@
     static $_prev_cache = array();
     if (!isset($content)) {
-        $ctx->localize(array('author', 'conditional', 'else_content'));
+        $prev_author = null;
+        $ctx->localize(array('author'));
         $author = $ctx->stash('author');
         if ($author) {
@@ -25,15 +26,13 @@
                               'need_entry' => 1);
                 list($prev_author) = $ctx->mt->db->fetch_authors($args);
-                if ($prev_author) $_prev_cache[$author_id] = $prev_author;
+                if ($prev_author) {
+                    $_prev_cache[$author_id] = $prev_author;
+                    $ctx->stash('author', $prev_author);
+                } else
+                    $repeat = false;
             }
-            $ctx->stash('author', $prev_author);
         }
-        $ctx->stash('conditional', isset($prev_author));
-        $ctx->stash('else_content', null);
     } else {
-        if (!$ctx->stash('conditional')) {
-            $content = $ctx->stash('else_content');
-        }
-        $ctx->restore(array('author', 'conditional', 'else_content'));
+        $ctx->restore(array('author'));
     }
     return $content;
Index: branches/release-29/php/lib/block.mtarchivelist.php
===================================================================
--- branches/release-29/php/lib/block.mtarchivelist.php (revision 1308)
+++ branches/release-29/php/lib/block.mtarchivelist.php (revision 1333)
@@ -2,6 +2,7 @@
 require_once "archive_lib.php";
 function smarty_block_mtarchivelist($args, $content, &$ctx, &$repeat) {
-  $localvars = array('current_archive_type', 'current_timestamp', 'current_timestamp_end', 'entries', 'archive_count', '_archive_list_num', '_archive_list_results','entry','ArchiveListHeader', 'ArchiveListFooter', 'inside_archive_list', 'category');
+  $localvars = array('current_archive_type', 'current_timestamp', 'current_timestamp_end', 'entries', 'archive_count', '_archive_list_num', '_archive_list_results','entry','ArchiveListHeader', 'ArchiveListFooter', 'inside_archive_list', 'category', 'author');
     global $_archivers;
+
     if (!isset($content)) {
         require_once("archive_lib.php");
