Getting a strange error where any path from a certain node starts in the incorrect place. The red paths are identical in code. The image on the left is what I expect, but the image on the right is what I'm getting. Any ideas what's causing this?

Right picture code (cropped the picture heavily, so there is a lot not shown):
\documentclass{article}
\usepackage{tikz}
\pagestyle{empty}
\begin{document}
%\input{../tikz-setup.tex}
\usetikzlibrary{shapes, arrows, calc, positioning}
% Define block styles
\tikzstyle{state} = [ rounded rectangle,
draw,
text centered,
minimum height=3em
]
\tikzstyle{test} = [ diamond,
draw,
shape aspect=2,
inner sep = 0pt,
text width = 7em,
text centered
]
\tikzstyle{action} = [ rectangle, draw,
text width=8em,
inner sep = 5pt,
minimum height=5em
]
\tikzstyle{data} = [ trapezium,
draw,
trapezium left angle=60,
trapezium right angle=120pt,
minimum height = 6em,
text width = 5em
]
\tikzstyle{line} = [ draw, -triangle 45 ]
\begin{tikzpicture}[align = flush center, font = \small]
% Place nodes
\matrix [row sep = 1.2em] (mtrx)
{
\node [state] (a) {Lorem ipsum}; \\
\node [test] (b) { dolor sit amet, con}; \\
\node [test] (c) {sectetur adipiscing elit. In bibendu}; \\
\node [test] (d) {m ante laoreet ante semper convallis. Pellentesque habi}; \\
\node [action] (e) {tant morbi tristique senectus et netus et malesuada fames ac turpis eg}; \\
\node [test] (f) {estas. Pellentesque vitae dia}; &
\node [test] (g) {m magna. Pellent}; \\
\node [test] (h) {esque placerat sa}; \\
\node [action] (i) {pien sed nisl faucibus tempor. Nullam nec quam nulla, se}; &
\node [action] (j) {d pulvinar lacus. Aenean sit amet tellus erat, non temp}; &
\node [action] (k) {or justo. Phasellus ege}; \\
\node [test] (l) {stas iaculis nisi vel ve}; &
\node [test] (m) {stibulum.Mauris id fa}; \\
\node [state] (n) {cilisis massa. C}; &
\node [state] (o) {urabitur feugiat v}; \\
&
&
\node [state, yshift=-2em] (p) {estibulum convallis \\ . Nulla dictum tinc}; \\
};
% Draw edges
\path [line] (a) -- (b);
\path [line] (b.east) -- node [above,very near start] {Yes} +(8.5,0) |- ( $(k)!0.85!(p)$ );
\path [line] (b.south) -- node [right] {No} (c);
\path [line] (c.south) -- node [right] {Yes} (d);
\path [line] (c.east) -| node [above,very near start] {No} (g);
\path [line] (d.south) -- node [right] {Yes} (e);
\path [line] (d.west) -- node [above] {No} +(-1,0) |- coordinate[midway] (e) (f);
\path [line, red] (e) -- (f);
\path [line] (g) -- node [right] {Yes} (j);
\path [line] (k) -- (p);
\end{tikzpicture}
\end{document}
Left picture code:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\pagestyle{empty}
\usetikzlibrary{shapes, arrows, calc, positioning}
% Define block styles
\tikzstyle{state} = [ rounded rectangle, draw,
text centered,
minimum height=3em
]
\tikzstyle{test} = [ diamond,
draw,
shape aspect=2,
inner sep = 0pt,
text width = 7em,
text centered
]
\tikzstyle{action} = [ rectangle, draw,
text width=8em,
inner sep = 5pt,
minimum height=5em
]
\tikzstyle{line} = [ draw, -triangle 45 ]
\begin{tikzpicture}[align = flush center, font = \small]
% Place nodes
\matrix[ row sep=1.2em] (mtrx)
{
\node [test] (f) {fLorem ipsum dolor sit amet}; \\
\node [test] (h) {hLorem ipsum dolo}; \\
\node [action] (i) {iLorem ipsum dolor sit amet, consectetur adipiscing elit.}; \\
\node [test] (l) {lLorem ipsum dolor};\\
};
\path [line,red] (i) -- (l);
\path [line] (h.west) -- node [above] {No} +(-1,0) |- coordinate[midway] (i) (l);
\end{tikzpicture}
\end{document}
Don't really understand how I'm getting this error.

