# Feynmf - two loop correction to 4 point function

How can I draw the two loop correction to the four point function, with one of the loops on the right propagator?

I tried

\begin{fmffile}{loop}
\begin{fmfgraph}(40,40)
\fmfleft{i1,i2}
\fmfright{o1,o2}
\fmf{plain}{i1,v1}
\fmf{plain}{i2,v2}
\fmf{plain,right=45}{v3,v3}
\fmf{plain}{o1,v1}
\fmf{plain}{o2,v2}
\fmf{plain,left}{v1,v2,v3,v1}
\end{fmfgraph}
\end{fmffile}


which gave me

How can I make the internal loop a circle, and have the loop correction to the right propagator be rotated 90 degrees clockwise?

Welcome to TeX.SE! Here is a proposal. It might be that there is an easier way, yet this way you have full control over the sizes of the loops. Let me also remark that right=45 does not seem right. The number after the equality sign is not an angle, but a fraction, below I use left=0.333. And you probably know that you cannot compile the following with pdflatex without further ado, but compiling with latex,calling mpost loop, calling latex again and then converting to pdf works.

\documentclass[border=3.14mm]{standalone}
\usepackage{feynmp}
\begin{document}
\begin{fmffile}{loop}
\begin{fmfgraph}(40,40)
\fmfleft{i1,i2}
\fmfright{o1,o2}
\fmf{plain}{i1,v1,o1}
\fmf{plain}{i2,v2,o2}
\fmf{plain,left}{v1,v2}
\fmffreeze
\fmf{phantom,left=0.33}{v2,v3,v1}
\fmffreeze
\fmfshift{10,0}{v3}
\fmf{plain,left=0.33}{v2,v3,v1}
\fmf{phantom,left}{v3,v4,v3}
\fmffreeze
\fmfshift{15,0}{v4}
\fmf{plain,left}{v3,v4,v3}
\end{fmfgraph}
\end{fmffile}
\end{document}