When using the -backup option, if the .bak file is a symbolic link pointing to a non-existing target, OptiPNG 0.7.5 transforms this symbolic link to a normal file, losing the symbolic link itself. This can be reproduced with: ------------------------------------------------------------------ #!/bin/sh prefix=symlinktest.$$ base64 -d > $prefix.1.png <<EOF iVBORw0KGgoAAAANSUhEUgAAACgAAAAoAQAAAACkhYXAAAAABGdBTUEAALGPC/xhBQAAAAFzUkdC AK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dE AAHdihOkAAAACW9GRnMAAAEfAAACiQBnGPpYAAAACXBIWXMAAABgAAAAYADwa0LPAAAACXZwQWcA AAH1AAADKACp4S7kAAAADElEQVQI12NgGFkAAADwAAHXt5aiAAAAJXRFWHRkYXRlOmNyZWF0ZQAy MDE0LTA2LTIyVDExOjE0OjQyKzAyOjAw2bjiaQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0wNi0y MlQxMToxNDo0MiswMjowMKjlWtUAAAAZdEVYdFNvZnR3YXJlAGdub21lLXNjcmVlbnNob3TvA78+ AAAAAElFTkSuQmCC EOF cp $prefix.1.png $prefix.2.png touch $prefix.3.png ln -s $prefix.3.png $prefix.1.png.bak rm -f $prefix.4.png ln -s $prefix.4.png $prefix.2.png.bak ls -l $prefix.* optipng -backup $prefix.1.png optipng -backup $prefix.2.png ls -l $prefix.* rm $prefix.* ------------------------------------------------------------------ I get, for instance: