My wife (a native speaker of German) tells my daughter: "I'm not going to let you go before you haven't practiced [piano]." I noticed the negation in German in such a subordinate clause a few years ago, but today I decided to not just notice the negation in the English but to think about it for a moment.
Consider the following sentences in which I have put the preposition in bold and underlined the verb in the subordinate clause:
- *I'm not going to let you go before you haven't practiced.
- I'm not going to let you go before you have practiced.
- *I'm not going to let you go until you haven't practiced.
- I'm not going to let you go until you have practiced.
- I'm not going to let you go if you haven't practiced.
- *I'm not going to let you go if you have practiced.
With "before" and "until", the verb in the subordinate clause should not be negated, but with "if", the verb in the subordinate clause should be negated.
For a moment, I thought it might have something to do with the "let" construction, but the main clause could be the much simpler "you can't go" instead, so it's not that.
The first time I encountered the corresponding German construction was in an English class with native speakers of German, to whom constructions 2 and 4 above don't make sense, so it's not just a matter of the "logic" of the sentences either, since English and German realize the referential logic of the situation differently.
At this point, I should probably get out my Cambridge Grammar of the English Language and look up "scope of negation" (that's my best bet about where to start), but instead, I'll just post this and see what anybody says.