a ok
 
bueno, viendo u codigo, lo que te devuelve es un
 img dentro de otro
 img, asi    
Código HTML:
Ver original- <img src="" style= width:84%  alt=<img src="http//localhost/axy/sitio/admin/pics/imagen.gif" />-  /> 
 
la variable 
$def no le encuentro sentido, ya que lo esta metiendo dentro de 
alt, tampoco encuentro sentido a la variable 
$size. 
otra observacion, si tratas de usar 
xhtml o 
html5, es necesario usar comillas doble (
" "), utilizalas para el atributo 
style y el atributo 
alt 
te dejo un codigo que te pude servir, y tal vez te sirva aprender mas sobre php 
serviria tambien si pones el codigo donde se declara 
$commAvatar    
Código PHP:
Ver original- $size = 20; 
- $def = "http://localhost/axy/sitio/admin/pics/imagen.gif";  
- $output = str_replace("{avatary}", '<img src="' . $commAvatar . '" style="width:84%" alt="' .$def . '" />',  $output); 
o tal vez este otro    
Código PHP:
Ver original- $size = 20; 
- $def = "http://localhost/axy/sitio/admin/pics/imagen.gif";  
- $output = str_replace("{avatary}", '<img src="' . $def . '" style="width:84%" />',  $output);