# turing machines – M does not accept [M] | ‘Correction’ of proof possible?

The language $$D={(M)|M((M))=0}$$ is not decidable because of the following argument:

Suppose there was a $$TM space M_D$$ that decides $$D$$. Then if we gave $$M_D space (M)$$, there would be two possible outcomes:

1. $$M_D((M_D))=1 text{ (accepts)}implies M_D text{ does accept }M_D$$, contradiction, because then $$M_D((M_D))=0$$ must be true.

2. $$M_D((M_D))=0 text{ (does not accept})implies M_D text{ does accept }M_D$$, contradiction, because then $$M_D((M_D))=1$$ must be true.

Anyways, I think most people are familiar with the proof.

My question is:

Where does the following argument fail? (I think this is important to understand other proofs where diagonalization is involved)

Suppose we have a $$TM$$ $$M_D$$ that decides if another $$TM space M$$ does not accept $$(M)$$. What if we just restrict $$M_D$$ so that it decides D for almost every other Turing Machine? So in this case we could say: $$M_D$$ does not decide for itself if $$M_D$$ accepts $$(M_D)$$, but it decides for every other Turing Machine.

Is this restriction useless because then it is possible to construct infinitely many Turing Machines for which $$M_D$$ can not decide whether they accept ‘themselves’?