Index: /branches/release-38/php/lib/function.mtauthoruserpicurl.php
===================================================================
--- /branches/release-38/php/lib/function.mtauthoruserpicurl.php (revision 1174)
+++ /branches/release-38/php/lib/function.mtauthoruserpicurl.php (revision 2356)
@@ -8,5 +8,14 @@
 function smarty_function_mtauthoruserpicurl($args, &$ctx) {
     $author = $ctx->stash('author');
-    if (!$author) return '';
+    if (empty($author)) {
+        $entry = $ctx->stash('entry');
+        if (!empty($entry)) {
+            $author = $ctx->mt->db->fetch_author($entry['entry_author_id']);
+        }
+    }
+
+    if (empty($author)) {
+        return $ctx->error("No author available");
+    }
 
     $asset_id = isset($author['author_userpic_asset_id']) ? $author['author_userpic_asset_id'] : 0;
Index: /branches/release-38/php/lib/function.mtauthorname.php
===================================================================
--- /branches/release-38/php/lib/function.mtauthorname.php (revision 1174)
+++ /branches/release-38/php/lib/function.mtauthorname.php (revision 2356)
@@ -8,5 +8,12 @@
 function smarty_function_mtauthorname($args, &$ctx) {
     $author = $ctx->stash('author');
-    if (!$author) {
+    if (empty($author)) {
+        $entry = $ctx->stash('entry');
+        if (!empty($entry)) {
+            $author = $ctx->mt->db->fetch_author($entry['entry_author_id']);
+        }
+    }
+
+    if (empty($author)) {
         return $ctx->error("No author available");
     }
Index: /branches/release-38/php/lib/function.mtauthorurl.php
===================================================================
--- /branches/release-38/php/lib/function.mtauthorurl.php (revision 1174)
+++ /branches/release-38/php/lib/function.mtauthorurl.php (revision 2356)
@@ -8,5 +8,12 @@
 function smarty_function_mtauthorurl($args, &$ctx) {
     $author = $ctx->stash('author');
-    if (!$author) {
+    if (empty($author)) {
+        $entry = $ctx->stash('entry');
+        if (!empty($entry)) {
+            $author = $ctx->mt->db->fetch_author($entry['entry_author_id']);
+        }
+    }
+
+    if (empty($author)) {
         return $ctx->error("No author available");
     }
Index: /branches/release-38/php/lib/function.mtauthorauthiconurl.php
===================================================================
--- /branches/release-38/php/lib/function.mtauthorauthiconurl.php (revision 1174)
+++ /branches/release-38/php/lib/function.mtauthorauthiconurl.php (revision 2356)
@@ -8,6 +8,13 @@
 function smarty_function_mtauthorauthiconurl($args, &$ctx) {
     $author = $ctx->stash('author');
-    if (!$author) {
-        return "";
+    if (empty($author)) {
+        $entry = $ctx->stash('entry');
+        if (!empty($entry)) {
+            $author = $ctx->mt->db->fetch_author($entry['entry_author_id']);
+        }
+    }
+
+    if (empty($author)) {
+        return $ctx->error("No author available");
     }
     require_once "function.mtstaticwebpath.php";
Index: /branches/release-38/php/lib/function.mtauthoruserpic.php
===================================================================
--- /branches/release-38/php/lib/function.mtauthoruserpic.php (revision 1174)
+++ /branches/release-38/php/lib/function.mtauthoruserpic.php (revision 2356)
@@ -8,5 +8,13 @@
 function smarty_function_mtauthoruserpic($args, &$ctx) {
     $author = $ctx->stash('author');
-    if (!$author) return '';
+    if (empty($author)) {
+        $entry = $ctx->stash('entry');
+        if (!empty($entry)) {
+            $author = $ctx->mt->db->fetch_author($entry['entry_author_id']);
+        }
+    }
+    if (empty($author)) {
+        return $ctx->error("No author available");
+    }
 
     $asset_id = isset($author['author_userpic_asset_id']) ? $author['author_userpic_asset_id'] : 0;
Index: /branches/release-38/php/lib/block.mtauthoruserpicasset.php
===================================================================
--- /branches/release-38/php/lib/block.mtauthoruserpicasset.php (revision 1174)
+++ /branches/release-38/php/lib/block.mtauthoruserpicasset.php (revision 2356)
@@ -8,5 +8,11 @@
 function smarty_block_mtauthoruserpicasset($args, $content, &$ctx, &$repeat) {
     $author = $ctx->stash('author');
-    if (!$author) {
+    if (empty($author)) {
+        $entry = $ctx->stash('entry');
+        if (!empty($entry)) {
+            $author = $ctx->mt->db->fetch_author($entry['entry_author_id']);
+        }
+    }
+    if (empty($author)) {
         return $ctx->error("No author available");
     }
Index: /branches/release-38/php/lib/function.mtauthoremail.php
===================================================================
--- /branches/release-38/php/lib/function.mtauthoremail.php (revision 1174)
+++ /branches/release-38/php/lib/function.mtauthoremail.php (revision 2356)
@@ -8,8 +8,15 @@
 function smarty_function_mtauthoremail($args, &$ctx) {
     $author = $ctx->stash('author');
-    if (!$author) {
+    if (empty($author)) {
+        $entry = $ctx->stash('entry');
+        if (!empty($entry)) {
+            $author = $ctx->mt->db->fetch_author($entry['entry_author_id']);
+        }
+    }
+
+    if (empty($author)) {
         return $ctx->error("No author available");
     }
-     return isset($author['author_email']) ? $author['author_email'] : '';
+    return isset($author['author_email']) ? $author['author_email'] : '';
 }
 ?>
Index: /branches/release-38/php/lib/function.mtauthorauthtype.php
===================================================================
--- /branches/release-38/php/lib/function.mtauthorauthtype.php (revision 1174)
+++ /branches/release-38/php/lib/function.mtauthorauthtype.php (revision 2356)
@@ -8,5 +8,12 @@
 function smarty_function_mtauthorauthtype($args, &$ctx) {
     $author = $ctx->stash('author');
-    if (!$author) {
+    if (empty($author)) {
+        $entry = $ctx->stash('entry');
+        if (!empty($entry)) {
+            $author = $ctx->mt->db->fetch_author($entry['entry_author_id']);
+        }
+    }
+
+    if (empty($author)) {
         return $ctx->error("No author available");
     }
Index: /branches/release-38/php/lib/function.mtauthorid.php
===================================================================
--- /branches/release-38/php/lib/function.mtauthorid.php (revision 1174)
+++ /branches/release-38/php/lib/function.mtauthorid.php (revision 2356)
@@ -8,5 +8,12 @@
 function smarty_function_mtauthorid($args, &$ctx) {
     $author = $ctx->stash('author');
-    if (!$author) {
+    if (empty($author)) {
+        $entry = $ctx->stash('entry');
+        if (!empty($entry)) {
+            $author = $ctx->mt->db->fetch_author($entry['entry_author_id']);
+        }
+    }
+
+    if (empty($author)) {
         return $ctx->error("No author available");
     }
Index: /branches/release-38/php/lib/function.mtauthordisplayname.php
===================================================================
--- /branches/release-38/php/lib/function.mtauthordisplayname.php (revision 1174)
+++ /branches/release-38/php/lib/function.mtauthordisplayname.php (revision 2356)
@@ -10,4 +10,13 @@
     // parameters: none
     $author = $ctx->stash('author');
+    if (empty($author)) {
+        $entry = $ctx->stash('entry');
+        if (!empty($entry)) {
+            $author = $ctx->mt->db->fetch_author($entry['entry_author_id']);
+        }
+    }
+    if (empty($author)) {
+        return $ctx->error("No author available");
+    }
     $author_name = $author['author_nickname'];
     $author_name or $author_name =
Index: /branches/release-38/lib/MT/Template/ContextHandlers.pm
===================================================================
--- /branches/release-38/lib/MT/Template/ContextHandlers.pm (revision 2333)
+++ /branches/release-38/lib/MT/Template/ContextHandlers.pm (revision 2356)
@@ -6273,6 +6273,10 @@
 sub _hdlr_author_id {
     my ($ctx) = @_;
-    my $author = $ctx->stash('author')
-        or return $ctx->_no_author_error();
+    my $author = $ctx->stash('author');
+    unless ($author) {
+        my $e = $ctx->stash('entry'); 
+        $author = $e->author if $e; 
+    }
+    return $ctx->_no_author_error() unless $author;
     return $author->id;
 }
@@ -6290,6 +6294,10 @@
 sub _hdlr_author_name {
     my ($ctx) = @_;
-    my $author = $ctx->stash('author')
-        or return $ctx->_no_author_error();
+    my $author = $ctx->stash('author');
+    unless ($author) {
+        my $e = $ctx->stash('entry'); 
+        $author = $e->author if $e; 
+    }
+    return $ctx->_no_author_error() unless $author;
     return $author->name;
 }
@@ -6309,8 +6317,8 @@
         my $e = $ctx->stash('entry'); 
         $a = $e->author if $e; 
-    } 
+    }
     return $ctx->_no_author_error() unless $a;
     return $a->nickname || MT->translate('(Display Name not set)', $a->id);
-} 
+}
 
 ###########################################################################
@@ -6326,6 +6334,10 @@
 sub _hdlr_author_email {
     my ($ctx, $args) = @_;
-    my $author = $ctx->stash('author')
-        or return $ctx->_no_author_error();
+    my $author = $ctx->stash('author');
+    unless ($author) {
+        my $e = $ctx->stash('entry'); 
+        $author = $e->author if $e; 
+    }
+    return $ctx->_no_author_error() unless $author;
     my $email = $author->email;
     return '' unless defined $email;
@@ -6343,6 +6355,10 @@
 sub _hdlr_author_url {
     my ($ctx) = @_;
-    my $author = $ctx->stash('author')
-        or return $ctx->_no_author_error();
+    my $author = $ctx->stash('author');
+    unless ($author) {
+        my $e = $ctx->stash('entry'); 
+        $author = $e->author if $e; 
+    }
+    return $ctx->_no_author_error() unless $author;
     my $url = $author->url;
     return defined $url ? $url : '';
@@ -6360,6 +6376,10 @@
 sub _hdlr_author_auth_type {
     my ($ctx) = @_;
-    my $author = $ctx->stash('author')
-        or return $ctx->_no_author_error();
+    my $author = $ctx->stash('author');
+    unless ($author) {
+        my $e = $ctx->stash('entry'); 
+        $author = $e->author if $e; 
+    }
+    return $ctx->_no_author_error() unless $author;
     my $auth_type = $author->auth_type;
     return defined $auth_type ? $auth_type : '';
@@ -6399,6 +6419,10 @@
 sub _hdlr_author_auth_icon_url {
     my ($ctx, $args) = @_;
-    my $author = $ctx->stash('author')
-        or return $ctx->_no_author_error();
+    my $author = $ctx->stash('author');
+    unless ($author) { 
+        my $e = $ctx->stash('entry'); 
+        $author = $e->author if $e; 
+    }
+    return $ctx->_no_author_error() unless $author;
     my $size = $args->{size} || 'logo_small';
     return $author->auth_icon_url($size);
@@ -6419,6 +6443,10 @@
 sub _hdlr_author_userpic {
     my ($ctx) = @_;
-    my $author = $ctx->stash('author')
-        or return $ctx->_no_author_error();
+    my $author = $ctx->stash('author');
+    unless ($author) {
+        my $e = $ctx->stash('entry'); 
+        $author = $e->author if $e; 
+    }
+    return $ctx->_no_author_error() unless $author;
     return $author->userpic_html() || '';
 }
@@ -6437,6 +6465,10 @@
 sub _hdlr_author_userpic_url {
     my ($ctx) = @_;
-    my $author = $ctx->stash('author')
-        or return $ctx->_no_author_error();
+    my $author = $ctx->stash('author');
+    unless ($author) {
+        my $e = $ctx->stash('entry'); 
+        $author = $e->author if $e; 
+    }
+    return $ctx->_no_author_error() unless $author;
     return $author->userpic_url() || '';
 }
@@ -6465,6 +6497,10 @@
     my ($ctx, $args, $cond) = @_;
 
-    my $author = $ctx->stash('author')
-        or return $ctx->_no_author_error();
+    my $author = $ctx->stash('author');
+    unless ($author) {
+        my $e = $ctx->stash('entry'); 
+        $author = $e->author if $e; 
+    }
+    return $ctx->_no_author_error() unless $author;
     my $asset = $author->userpic or return '';
 
