To solve the issue at hand, I recommend taking a more CSS-centric approach. Check out this JSfiddle for an example:
http://jsfiddle.net/EuWCp/4/
The problem arises from conflicting "onmouseout" and "onmouseover" events when hovering over both text and an image simultaneously. This creates a loop causing the image to "flash" between states.
In the provided JSFiddle, the image is wrapped in a caption within an anchor tag (similar to your current method), with the caption being hidden/displayed on hover.
There are various ways to clean up and modify the CSS. For instance, setting static dimensions on the container element can be helpful. Different techniques can be utilized here.
Instead of simply using "display:none" and "display:block", consider implementing "left:-999em" and "left:0" on hover for better accessibility and SEO friendliness (common drop-down menu method).
Utilizing HTML5's FIGURE and FIGCAPTION tags may be suitable here as well. Additionally, using RGBA for transparent backgrounds might pose compatibility challenges with older IE browsers. There are alternative methods like PNGs for improved backward compatibility if needed.
I hope this information proves beneficial.
Best regards!