Lifting criterion, where do we use "X is locally path connected" in the proof? The following lifting criterion is well known.
Let $p:E\to B$ be a covering map, $p(e_0)=b_0$. Let $X$ be a path connected, locally path connected space (I know this is necessary). Let $f:X \to B$ be a continuous map, $f(x_0)=b_0$.  If $f_*(\pi_1(X,x_0))\subset p_*(\pi_1(E,e_0))$, then there exists a lift $\tilde{f}:X\to E$ of $f$.
Proof: For any $x\in X$, choose a path $c(t)\subset X$ connecting $x_0$ and $x$, then lift $c(t)$ to $E$, we get $\tilde{c}(t)\subset E$, define $\tilde{f}(x)=\tilde{c}(1)$. We can check that for different paths, we get the same $\tilde{f}(x)$, thus well defined.
I check that $\tilde{f}(x)$ is continuous in the following way: 
For $x \in X $, $\tilde{f}(x)\in E$, choose a small open nbh $V_0\subset E$ such that $p:V_0\to p(V_0)\subset B$ is a homeomorphism. We claim that for any open nbh $V\subset V_0$, there exists open nbh $W$ of $x$, such that $\tilde{f}(W)\subset V$. 
Since $E$ is locally path connected, choose a path connected open nbh $V'\subset V$, then $p(V')\subset B$ is also path connected. For any $y \in f^{-1}(p(V'))$, $f(y)\in p(V')$. Choose a path $c(t)$ in $p(V')$ connecting $f(x)$ and $f(y)$, then lift to $V'$, we get $\tilde{c}(t)\subset V'$. We can check that $\tilde{f}(y)=\tilde{c}(1)\in V'$. 
Denote $W=f^{-1}(p(V'))\subset X$, we have shown that $\tilde{f}(W)\subset V'\subset V$. Since $p(V')$ is open, $W$ is an open nbh of $x$. So we prove the claim, $\tilde{f}$ is continuous at $x$.
In the above argument, I haven't use that $X$ is locally path connected (I know it is necessary), so where am I wrong?
 A: You do not need $E$ or $B$ locally path connected, the lifting theorem is true for all covering maps $p : E \to B$ provided $X$ is path connected and locally path connected. See Hatcher's "Algebraic Topology".
The problem with your argument is this:
$\bar f(x)$ is constructed by choosing a path $c_x$ from $x_0$ to $x$ in $X$, lifting $fc_x$ to $\overline{fc_x} : I \to E$ such that $\overline{fc_x}(0) = e_0$ and defining $\bar f(x) = \overline{fc_x}(1)$. What you have written concerning $\bar f(x)$ is inadequate.
In the sequel you take a path $c$ in $p(V')$ from $f(x)$ to $f(y)$ (i.e. a path in $B$) and lift it to a path $\bar c$ in $V'$. However, I cannot see any relation between $\bar c$ and the two points $\overline{f}(x), \overline{f}(y)$. In fact you have to start with a path in $X$ to argue that the lifted path connects $\overline{f}(x), \overline{f}(y)$. See Hatcher.
Edited:
Here is the correct argument. Let $V$ be an open neigborhood f $\bar f(x)$ in $E$. Then $p(V)$ is an open neighborhood of $f(x)$ in $B$. There exists an open neigborhood $W \subset p(V)$ of $f(x)$ in $B$ which is evenly covered by $p$. That is, $p^{-1}(W)$ can be represented as the disjoint union of opens subsets of $E$ which are mapped by $p$ homeomorphically onto $W$ ("sheet decomposition"). Let $V'$ the sheet containing $\bar f(x)$.
$U = f^{-1}(W)$ is an open neighborhood of $x$ in $X$. Let $y \in U$ and $c$ be a path from $x$ to $y$ in $U$. Then $c_y = c_x * c$ ( where $*$ denotes composition of paths) is a path from $x_0$ to $y$ so that $\bar f(y) = \overline{fc_y}(1)$. But the lift $\overline{fc_y}$ is nothing else than $\overline{fc_x} * \overline{fc}$, where $\overline{fc}$ is the lift of $fc : I \to W$ given by  $p^{-1}fc : I \to V'$. Note that $\overline{fc}(0) = \bar f(x)$. This shows $\bar f(y) \in V'$. Therefore the path component $P$ of $x$ in $U$ is mapped by $\bar f$ into $V'\subset V$. For points $y \in U \setminus P$ we cannot say anything about $\bar f(y)$. There exists a path $c$ from $x$ to $y$ in $X$, but the lift $\overline{fc}$ of $fc$ with $\overline{fc}(0) = \bar f(x)$ need not satisfy $\overline{fc}(1) \in V'$. It may be contained in another sheet over $W$ if $c$ leaves $U$.
Here local path connectedness enters: Path components of open susbets of locally path connected spaces are open. Thus $P$ is an open neighborhood of $x$ in $X$.
This proof is perhaps more complicated than Hatcher's, but it has the benefit of making really transparent why local path connectedness is so essential.
