diff --git a/allzweckmesser/scanner.py b/allzweckmesser/scanner.py
index fc7335eb4e5db5fb8b9228503b449544306650f0..db69fa58c6010ddb8fb8d5a7ee46c6c54228a507 100644
--- a/allzweckmesser/scanner.py
+++ b/allzweckmesser/scanner.py
@@ -226,8 +226,12 @@ def get_syllables_for_token(token: Token):
 
 
 def get_syllables(reading):
+    i = 0
     for token in reading.tokens:
         token.syllables = get_syllables_for_token(token)
+        for s in token.syllables:
+            s.id = i
+            i += 1
     return reading
 
 
diff --git a/allzweckmesser/wordlist.py b/allzweckmesser/wordlist.py
index 3e2f8a3a1c2ee4cee47f65f0e384029187cf6994..b873ca308f465cbeea7513dde9d45771ffa5a2ef 100644
--- a/allzweckmesser/wordlist.py
+++ b/allzweckmesser/wordlist.py
@@ -121,6 +121,13 @@ class WordList:
                     self.cache_analyses(morpheus_analyses)
                 else:
                     self.unknown_forms.add(form)
+
+        if not self.form_analyses[form] and form[0].isupper():
+            # Try to look up the non-capitalized version of the form.
+            analyses = self.analyze(form.lower())
+            if analyses:
+                self.cache_analyses({form: analyses})
+
         return self.form_analyses[form]
 
     def load_from_db(self, form: str) -> Set[FormAnalysis]: