The phrase ‘will come’ is incorrect.
The simple future tense cannot be used in clauses beginning with time expressions such as ‘when’, ‘while’, ‘before’, ‘after’, ‘unless’, etc. Simple present tense should be used rather than simple future tense.
Therefore, ‘will come’ must be replaced with ‘comes’ to form a grammatically correct sentence.
Hence, option D is the correct answer.