-{if !hasPerm('directory_private') && ($address.pub eq 'private') && !$new}
-{assign var=hiddenaddr value=true}
+{if $isMe || hasPerm('admin') || $new}
+ {assign var=hiddenaddr value=false}
+{elseif hasPerm('directory_hidden') || (($address.pub neq 'hidden') && ($address.pub neq 'private'))}
+ {assign var=hiddenaddr value=false}
+{elseif hasPerm('directory_private') && ($address.pub neq 'hidden')}
+ {assign var=hiddenaddr value=false}