Breakdown of Sie hat versprochen, mir den Kompass zu bringen, und ich habe ihr verziehen, dass sie ihn gestern vergessen hat.
Questions & Answers about Sie hat versprochen, mir den Kompass zu bringen, und ich habe ihr verziehen, dass sie ihn gestern vergessen hat.
In German, versprechen (to promise) normally takes a dative person + accusative thing:
- jemandem etwas versprechen = to promise somebody something
In the sentence:
- Sie hat versprochen, mir den Kompass zu bringen.
- mir = to me (dative, the person who receives the promise)
- den Kompass = the thing being promised (accusative)
mich would be accusative and would mean me as a direct object, which is not correct here. The direct object is den Kompass, not the person.
The verb verzeihen (to forgive) also takes a dative person:
- jemandem (Dat.) verzeihen = to forgive someone
In the sentence:
- … und ich habe ihr verziehen …
- ihr = to her (dative, the person being forgiven)
Using sie would be accusative (or nominative) and would be wrong here, because verzeihen does not take an accusative object for the person. It’s always jemandem verzeihen, not jemanden verzeihen.
German uses zu + infinitive to form infinitive clauses, similar to to bring in English.
The structure here is:
- versprechen, etwas zu tun = to promise to do something
So:
- Sie hat versprochen, mir den Kompass zu bringen.
= She promised to bring me the compass.
In this infinitive clause, everything except zu bringen comes before the verb:
- mir den Kompass (objects)
- zu bringen (infinitive with zu)
German almost always puts the infinitive at the end of the infinitive clause: (Objekte) + zu + Verb.
The comma before a zu + infinitive clause is optional in modern German (except in some special cases).
So you can write:
- Sie hat versprochen, mir den Kompass zu bringen.
- Sie hat versprochen mir den Kompass zu bringen.
Both are correct. Many writers prefer the comma because it makes the structure clearer, especially in longer sentences.
The infinitive is verzeihen (to forgive), but the past participle is irregular:
- infinitive: verzeihen
- past: ich verzieh (more literary, not common in spoken German)
- past participle: verziehen
So in the perfect tense:
- ich habe ihr verziehen = I forgave her / I have forgiven her.
Be careful: there is also a different verb verziehen (to move, to relocate; or to warp, to pull askew). Its participle is also verzogen in some meanings. Here, however, it is clearly the participle of verzeihen, used with haben.
Both verzeihen and vergeben can mean to forgive, but they’re used a bit differently:
verzeihen
- More common in everyday speech.
- Pattern: jemandem (Dat.) verzeihen
- Example: Ich verzeihe dir. = I forgive you.
vergeben
- Often sounds a bit more formal or religious.
- Pattern: jemandem (Dat.) etwas (Akk.) vergeben
- Example: Gott vergibt den Sündern. = God forgives the sinners.
In your sentence, ich habe ihr verziehen is the most natural everyday choice. Ich habe ihr vergeben would also be grammatically fine, but changes the nuance slightly.
In subordinate clauses introduced by dass, the finite verb goes to the end. For compound tenses like the perfect (hat vergessen), the auxiliary usually goes last:
- dass sie ihn gestern vergessen hat
(literally: that she him yesterday forgotten has)
The version dass sie ihn gestern hat vergessen is sometimes heard in spoken German and certain dialects, but the standard, most neutral written form is:
- dass + [subject + objects/adverbs] + Partizip II + finite auxiliary
→ dass sie ihn gestern vergessen hat.
Grammatically yes:
- dass sie ihn gestern vergaß
is correct German. However, in modern spoken German, especially in most regions of Germany, the perfect tense (hat vergessen) is much more common in everyday conversation.
Rough guideline:
- Spoken German: prefers perfect (hat vergessen).
- Written, literary, or formal style: may use simple past (vergaß), especially in narrative texts.
So dass sie ihn gestern vergessen hat sounds more natural in ordinary conversation.
In contemporary standard German (especially in Germany), the perfect tense is the default for talking about completed past actions in speech:
- Sie hat versprochen … (she promised)
- ich habe ihr verziehen (I forgave her)
- sie hat ihn gestern vergessen (she forgot it yesterday)
You could use the simple past:
- Sie versprach …
- ich verzieh ihr (quite literary)
- sie vergaß ihn gestern
but these forms sound more written/ literary or regional (e.g., more common in northern Germany for some verbs). For everyday spoken language, the perfect is the unmarked, natural choice.
Kompass is a masculine noun in German:
- der Kompass (nominative singular)
In your sentence:
- mir den Kompass → accusative masculine singular
- den shows accusative masculine (definite article).
- ihn → accusative masculine pronoun referring back to den Kompass.
So the chain is:
- der Kompass (subject form)
- den Kompass (as object)
- ihn (pronoun replacing den Kompass)
You generally have to learn the gender (der/die/das) with each noun. Once you know der Kompass, the correct article (den) and pronoun (ihn) follow from case rules.
The usual word order in a dass-clause is:
- dass (subordinating conjunction)
- subject
- objects and adverbials (e.g. ihn, gestern)
- non-finite verb(s) (participle, infinitive)
- finite verb (conjugated auxiliary)
So:
- dass – sie – ihn – gestern – vergessen – hat
You cannot put the finite verb (hat) before the adverb gestern in standard German word order in this type of clause. … dass sie ihn hat gestern vergessen is ungrammatical in standard German.
German does not allow you to just put two full main clauses side by side with a comma in that way as English sometimes does.
To express “I forgave her for the fact that she forgot it yesterday”, you need a subordinate clause marking that content, and dass is the standard conjunction for this:
- ich habe ihr verziehen, dass sie ihn gestern vergessen hat.
If you wrote:
- ich habe ihr verziehen, sie hat ihn gestern vergessen.
this would be a comma splice (two independent clauses separated only by a comma), which is considered wrong in standard German punctuation. You would need a conjunction like denn, weil, und, or a semicolon / full stop instead.
You can, but the meaning changes:
ich habe ihr verziehen, dass sie ihn gestern vergessen hat.
= I forgave her for the fact that she forgot it yesterday.
(The forgetting is exactly what is being forgiven.)ich habe ihr verziehen, weil sie ihn gestern vergessen hat.
= I forgave her because she forgot it yesterday.
(Implies the forgetting is the reason for forgiving her, which is odd logically.)
Normally, what you forgive is the mistake. So dass is the natural and correct choice here. weil would almost always sound wrong in this concrete context.