Razvan,
Your general solution to the differential equation has complex numbers which go to zero when you ask for solutions that are real. However, because of machine precision, you have some VERY small complex parts. For example,
In[20]:= posx3[0, 1, -1]
Out[20]= {1. + 1.38667*10^-32 I}
You must use Chop[] to get rid of infinitesimal imaginary parts. For example:
sol1 := Chop[DSolve[{diffeq3, diffeq4, x3'[0] == 0, x4'[0] == 0, x3[0] == xo3, x4[0] == xo4}, {x3[t], x4[t]}, t]];
will fix this by Choping the numbers when evaluating posx3, posx4 or you can Chop it later at Plot time.
Regards,
Neil