Display the user avatar in  a user panel
There are actually two separate blocks, User login that is displayed only to anonymous users and Navigation that only gets displayed once user has logged in. You are interested in modifying the latter one.

Unfortunately, there's no hook_block_alter() around that you could use to modify the block from a custom module. However, you can do so from within your theme just before the block gets displayed.

Just pop the following function into YOURTHEME's template.php and it should work. Please, note, this adds the user picture to the top of the block content, just below the user name.

function YOURTHEME_preprocess_block(&amp;$vars) {
  $block =&amp; $vars['block'];
  if ($block-&gt;module == 'user' &amp;&amp; $block-&gt;delta == 1) {
    // Navigation block.
    $block-&gt;content = theme('user_picture', $vars['user']) . $block-&gt;content;
  }
}


If you want it above the username, just replace $block-&gt;content with $block-&gt;subject. 

Or, even better, just create another block, place it above the Navigation, make it only visible specifically to authenticated user role, set the Body title to &lt;none&gt;, and Block body to:

&lt;?php
global $user;    
print theme('user_picture', $user);
?&gt;


Make sure to enable the PHP filter module first and use PHP code filter for the Block body input.