Fix some programming languages $S$ which is rich enough such that one can write interpreters for $S$ in $S$. Define $$ K(w) := \mbox{length of a shortest program producing $w$}. $$ Now fix some program $P$ in $S$ and define $$ K_P(w) := \mbox{length of a shortest input to $P$ such that $P$ produces $w$} $$ and $K_P(w) := \infty$ if no such input exists.
The second definition is the usual one for the (unconditional) Kolmogorov complexity. Now for this the famous Invariance Theorem holds, namely:
There exists some programm $U$ such that for all $P$ and $w$ we have $$ K_U(w) \le K_P(w) + C_P $$ where the constant $C_P$ just depends on $P$. Such a program is called universal and these programs are precisely the interpreters. The proof works by coding $P$ and $w$ for $U$, the coding of $P$ goes into the constant. A corollary of this is that for two universal programms $U, V$ we have $$ -C_{U,V} \le K_U(w) - K_V(w) \le C_{U,V} \qquad (*) $$ where the constant $C_{U,V}$ just depends on $U$ and $V$.
But now if I have a shortest program $P$ for $w$ (without any input), then $K(w) = |P|$, but also $K_U(w) = |P|$ for each universal $U$, because this $P$ is the shortest program and therefore the shortest input which when interpreted as a program and executed yields $w$, therefore $$ K_U(w) = K(w) $$ for each universal $U$, but this yields $K_U(w) = K_V(w)$ for all universal $U,V$ contradicting (*), so what goes wrong here. Maybe there is something wrong with the definition of $K(w)$ but I cannot see what, I have just defined it with relation to some programming language $S$, which should be fine?