diff --git a/FASSUNGEN.txt b/FASSUNGEN.txt
index 366a254..d3605b2 100644
--- a/FASSUNGEN.txt
+++ b/FASSUNGEN.txt
@@ -67,6 +67,42 @@
 Anpassung) werden vollständig angewandt, ohne Rest.
 
 
+Artikel 4
+Normköpfe tragen keine ganzen Sätze
+
+Der Landesrecht-Textparser (LandesRechtTextParser) las einen am Zeilenanfang
+stehenden Querverweis-Satz („§ 7 GAPInVeKoSG findet entsprechend Anwendung.“) als
+Normkopf „§ 7“, wodurch die dazwischenliegenden Normen der Monotonie-Prüfung zum
+Opfer fielen. Ein Normkopf trägt jedoch eine Überschrift, keinen ganzen Satz;
+deshalb schließt das Normkopf-Muster nunmehr Titel aus, die auf einen Punkt enden.
+
+
+Artikel 5
+Fußzeile und Herausgeberzeile des Niedersächsischen GVBl
+
+Der Textbereiniger (TextBereiniger.istKolumnentitel) entfernt nunmehr auch die
+laufende Fußzeile des Niedersächsischen Gesetz- und Verordnungsblatts („Nds. GVBl.
+2026 Nr. 10 vom 4. Februar 2026  Seite 2“) und die Herausgeberzeile. Die zwischen
+zwei Aufzählungsgliedern stehende Fußzeile hängte sich sonst an das voranstehende
+Neufassungs-Zitat, sodass dessen Satzende-Anker nicht mehr griff.
+
+
+Artikel 6
+Belegfall Niedersächsisches ELER-Fördergesetz
+
+Als weitere Beispieldaten treten die konsolidierte Fassung des seit 2022
+unveränderten NEFG (sampledata/Niedersachsen/NEFG-alt.txt, kanonischer Klartext,
+aus dem zweispaltig gesetzten Nds. GVBl 2022 Nr. 33 abgeleitet) und ein
+End-to-End-Akzeptanztest (EndToEndTest.nefgAcceptance) hinzu: Von den sieben
+Befehlen werden fünf angewandt — darunter zwei Neufassungen „erhält folgende
+Fassung“ (§ 1 Abs. 1, § 2), die Angaben-Ersetzung in § 1 Abs. 5, die
+Wörter-Einfügung in § 6 Abs. 1 und die Umnummerierung § 13 → § 14. Zwei
+Einfügeformen bleiben als „manuell prüfen“ stehen (bewusst dokumentierte Grenze):
+die Einfügung eines §-Blocks mit durch Leerzeichen getrennter Sachnummer („§ 2 a“)
+sowie die kapitelbezogene §-Block-Einfügung („In Kapitel 4 wird nach § 12 …
+angefügt“).
+
+
 ════════════════════════════════════════════════════════════════════════════════
  Fassung vom 19. Juli 2026,
  zuletzt geändert durch die am 19. Juli 2026 vorgenommenen Änderungen
diff --git a/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java b/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java
index d79df60..9c1edaa 100644
--- a/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java
+++ b/src/main/java/eu/mulk/aendggner/aenderung/parse/TextBereiniger.java
@@ -123,6 +123,14 @@
       Pattern.compile(
           "^\\s*https?://\\S+\\s+Fassung vom \\d{1,2}\\.\\d{1,2}\\.\\d{4}\\s+Seite \\d+ von \\d+\\s*$");
 
+  // Niedersächsisches GVBl: laufende Fußzeile („Nds. GVBl. 2026 Nr. 10 vom 4. Februar 2026  Seite 2“)
+  // und Herausgeberzeile. Die Fußzeile steht zwischen zwei Aufzählungsgliedern und hängte sich sonst
+  // an den vorangehenden Befehl (Neufassungs-Zitat), sodass dessen Satzende-Anker nicht mehr greift.
+  private static final Pattern NDS_GVBL_FUSS =
+      Pattern.compile("^\\s*Nds\\. GVBl\\. \\d{4} Nr\\. \\d+ vom .+? Seite \\d+\\s*$");
+  private static final Pattern NDS_HERAUSGEBER =
+      Pattern.compile("^\\s*Herausgeber: Niedersächsische Staatskanzlei\\s*$");
+
   /** Konjunktionen, die typischerweise auf einen Suspensivstrich folgen („Wirk- und …“). */
   private static final Pattern KONJUNKTION =
       Pattern.compile("^(und|oder|sowie|bzw\\.|beziehungsweise)\\b.*");
@@ -292,7 +300,9 @@
         || LANDTAG_SEITENKOPF.matcher(zeile).matches()
         || LANDTAG_TITELKOPF.matcher(zeile).matches()
         || LANDTAG_MARKE.matcher(zeile).matches()
-        || REVOSAX_FUSS.matcher(zeile).matches();
+        || REVOSAX_FUSS.matcher(zeile).matches()
+        || NDS_GVBL_FUSS.matcher(zeile).matches()
+        || NDS_HERAUSGEBER.matcher(zeile).matches();
   }
 
   /**
diff --git a/src/main/java/eu/mulk/aendggner/gesetz/land/LandesRechtTextParser.java b/src/main/java/eu/mulk/aendggner/gesetz/land/LandesRechtTextParser.java
index 23260de..ada273c 100644
--- a/src/main/java/eu/mulk/aendggner/gesetz/land/LandesRechtTextParser.java
+++ b/src/main/java/eu/mulk/aendggner/gesetz/land/LandesRechtTextParser.java
@@ -69,7 +69,10 @@
               // dass „Satz“ auch „Satzungen“, „Nummer“ auch „Nummerierung“ trifft.
               + "(?!(?:Absatz|Abs\\.|Satz|Sätze|Nummer|Nr\\.|Buchstabe|Buchst\\."
               + "|und|bis|oder|sowie|des|der|dieses)(?![a-zäöüß]))"
-              + "((?:\\p{Lu}|\\().*)$");
+              // Der Titel endet nicht auf einen Punkt: ein Normkopf trägt eine Überschrift, keinen
+              // ganzen Satz. So wird ein am Zeilenanfang stehender Querverweis-Satz („§ 7 GAPInVeKoSG
+              // findet entsprechend Anwendung.“) nicht fälschlich als Normkopf „§ 7“ gelesen.
+              + "((?:\\p{Lu}|\\().*[^.])\\s*$");
 
   private static final Pattern WEGGEFALLEN_TITEL =
       Pattern.compile("^\\((?:aufgehoben|weggefallen)\\)$");
diff --git a/src/main/resources/sampledata/Landesrecht-Beispiele.adoc b/src/main/resources/sampledata/Landesrecht-Beispiele.adoc
index 095e475..f358ae4 100644
--- a/src/main/resources/sampledata/Landesrecht-Beispiele.adoc
+++ b/src/main/resources/sampledata/Landesrecht-Beispiele.adoc
@@ -84,7 +84,13 @@
   Vorfassung `Sachsen/SaechsBeamtVG-alt.txt` (kanonischer Klartext, Fassung vom 01.02.2025, aus
   der archivierten revosax-Volltextfassung abgeleitet) und End-to-End-Akzeptanztest
   (`EndToEndTest.saechsBeamtVgAcceptance`; fünf Befehle, kein Rest).
-* Für die übrigen erfassten Länder fehlt die konsolidierte Stammfassung noch (siehe oben).
+* *Niedersachsen* ist umgesetzt: `Niedersachsen/NEFG-alt.txt` (seit 2022 unveränderter NEFG, aus
+  dem zweispaltigen Nds. GVBl 2022 Nr. 33) und `EndToEndTest.nefgAcceptance` (fünf von sieben
+  Befehlen angewandt; zwei Einfügeformen — Sachnummer mit Leerzeichen „§ 2 a“, kapitelbezogene
+  §-Block-Einfügung — noch nicht unterstützt, als Grenze dokumentiert).
+* Baden-Württemberg (GBl 2026 Nr. 26): großes Anlage-lastiges Änderungsgesetz (§§ 4–57a + Anlagen
+  1/3b/4b); Stammfassung/Akzeptanztest noch offen.
+* Für Schleswig-Holstein fehlt die konsolidierte Stammfassung noch (siehe oben).
 
 == Noch offen
 
diff --git a/src/main/resources/sampledata/Niedersachsen/NEFG-alt.txt b/src/main/resources/sampledata/Niedersachsen/NEFG-alt.txt
new file mode 100644
index 0000000..bc372c6
--- /dev/null
+++ b/src/main/resources/sampledata/Niedersachsen/NEFG-alt.txt
@@ -0,0 +1,91 @@
+Niedersächsisches ELER-Fördergesetz
+(NEFG)
+Vom 22. September 2022
+Kapitel 1  Anwendungsbereich
+§ 1  Anwendung des Gesetzes
+(1) Dieses Gesetz dient insbesondere der Durchführung der Vorschriften zu den Verwaltungs- und Kontrollsystemen der Verordnung (EU) 2021/2116 des Europäischen Parlaments und des Rates vom 2. Dezember 2021 über die Finanzierung, Verwaltung und Überwachung der Gemeinsamen Agrarpolitik und zur Aufhebung der Verordnung (EU) Nr. 1306/2013 (ABl. EU Nr. L 435 S. 187; 2022 Nr. L 29 S. 45), soweit sie sich auf die Umsetzung der Interventionen nach Titel III Kapitel IV der Verordnung (EU) 2021/2115 des Europäischen Parlaments und des Rates vom 2. Dezember 2021 mit Vorschriften für die Unterstützung der von den Mitgliedstaaten im Rahmen der Gemeinsamen Agrarpolitik zu erstellenden und durch den Europäischen Garantiefonds für die Landwirtschaft (EGFL) und den Europäischen Landwirtschaftsfonds für die Entwicklung des ländlichen Raums (ELER) zu finanzierenden Strategiepläne (GAP-Strategieplä-
+ne) und zur Aufhebung der Verordnung (EU) Nr. 1305/2013 sowie der Verordnung (EU) Nr. 1307/2013 (ABl. EU Nr. L 435 S. 1) beziehen.
+(2) Kapitel 2 dieses Gesetzes findet auf alle ELER-Interventionen nach Titel III Kapitel IV der Verordnung (EU) 2021/ 2115 Anwendung.
+(3) Kapitel 3 dieses Gesetzes findet auf die flächen- und tierbezogenen ELER-Interventionen nach den Artikeln 70 bis 72 der Verordnung (EU) 2021/2115 Anwendung.
+(4) Kapitel 4 dieses Gesetzes findet auf alle nicht flächen- und tierbezogenen ELER-Interventionen nach den Artikeln 73 bis 78 der Verordnung (EU) 2021/2115 Anwendung.
+(5) Mit der Ermächtigung in § 13 Abs. 3 kann der Anwendungsbereich des Gesetzes eröffnet werden für Regelungen zu der elektronischen Antragstellung, der elektronischen Erstellung eines Verwaltungsaktes, dem elektronischen Verwaltungsakt und der elektronischen Kommunikation mit den Begünstigten nach § 13 Abs. 2 auch für Interventionen nach Titel III Kapitel II der Verordnung (EU) 2021/2115 in Ergänzung zum GAP-Integrierten Verwaltungs- und Kontrollsystem-Gesetz (GAPInVeKoSG) sowie in Ergänzung zu den aufgrund des § 17 GAPInVeKoSG  erlassenen Verordnungen, für Interventionen nach der Verordnung (EU) Nr. 1308/2013 des Europäischen Parlaments und des Rates vom 17. Dezember 2013 über eine gemeinsame Marktorganisation für landwirtschaftliche Erzeugnisse und zur Aufhebung der Verordnungen (EWG) Nr. 922/72, (EWG) Nr. 234/79, (EG) Nr. 1037/ 2001 und (EG) Nr. 1234/2007 des Rates (ABl. EU Nr. L 347 S. 671; 2014 Nr. L 189 S. 261; 2016 Nr. L 130 S. 18; 2017 Nr. L 34 S. 41; 2020 Nr. L 106 S. 12), zuletzt geändert durch die Verordnung (EU) 2021/2117 des Europäischen Parlaments und des Rates vom 2. Dezember 2021 (ABl. EU Nr. L 435 S. 262), sowie für  Interventionen in bestimmten Sektoren nach Titel III Kapitel III der Verordnung (EU) 2021/2115 und für niedersächsische Zuwendungen oder Billigkeitsleistungen ohne finanzielle Beteiligung der Europäischen Union, wenn diese zusammen mit Anträgen in der EU-Förderung beantragt werden.
+Kapitel 2  Gemeinsame Vorschriften für ELER-Interventionen
+§ 2  Verwendung einer einheitlichen Registriernummer
+§ 7 GAPInVeKoSG findet entsprechend Anwendung.
+§ 3  Berichtigung und Anpassung
+bei offensichtlichen Irrtümern
+(1) ¹Von Begünstigten vorgelegte Beihilfe-, Förder- und Auszahlungsanträge sowie Belege sind nach ihrer Einreichung zu berichtigen und anzupassen, wenn es sich um offensichtliche Irrtümer handelt, die von der Bewilligungsstelle anerkannt wurden. ²Die Berichtigung kann jederzeit erfolgen.
+(2) Die Bewilligungsstelle kann offensichtliche Irrtümer nur dann anerkennen, wenn sie durch eine einfache Prüfung der Angaben in den in Absatz 1 genannten Unterlagen unmittelbar festgestellt werden können.
+(3) Bei Anerkennung eines offensichtlichen Irrtums wird die oder der Begünstigte so gestellt, als ob ihr oder ihm der Irrtum nicht unterlaufen wäre.
+§ 4  Verzinsung bei Erstattungen
+¹Im Fall einer Rückforderung ist der zu erstattende Betrag abweichend von § 49 a Abs. 3 Satz 1 des Verwaltungsverfahrensgesetzes in Verbindung mit § 1 Abs. 1 des Niedersächsischen Verwaltungsverfahrensgesetzes mit Ablauf der durch die Bewilligungsstelle bestimmten Zahlungsfrist zu verzinsen. ²Die Zahlungsfrist darf nicht mehr als 60 Tage ab Absendung des Festsetzungsbescheides betragen.
+Kapitel 3  Vorschriften für flächen- und tierbezogene
+ELER-Interventionen
+§ 5  Höhere Gewalt oder außergewöhnliche Umstände
+¹Konnte die oder der Begünstigte aufgrund höherer Gewalt oder außergewöhnlicher Umstände eine Verpflichtung nicht erfüllen, wird die entsprechende Zahlung für die Jahre, in denen ein Fall höherer Gewalt oder außergewöhnlicher Umstände auftraten, anteilmäßig abgezogen. ²Dieser Abzug betrifft nur die Teile der Verpflichtung, für die vor Eintreten des Falls von höherer Gewalt oder außergewöhnlicher Umstände keine zusätzlichen Kosten oder Einkommensverluste
+entstanden sind. ³Verwaltungssanktionen werden nicht verhängt. ⁴In Bezug auf die Fördervoraussetzungen und sonstigen Auflagen erfolgt keine Rücknahme und es wird keine Verwaltungssanktion verhängt. ⁵Fälle höherer Gewalt oder außergewöhnlicher Umstände sind der Bewilligungsstelle innerhalb von 15 Werktagen ab dem Zeitpunkt, ab dem die oder der Begünstigte hierzu in der Lage ist, mitzuteilen und nachzuweisen.
+§ 6  Anwendbarkeit von Vorschriften des GAP-Integrierten
+Verwaltungs- und Kontrollsystem-Gesetzes
+(1) Die §§ 3, 4, 8, 14 Abs. 1 Nr. 2, Abs. 2 Nrn. 2 bis 4, Abs. 3 und § 15 GAPInVeKoSG finden entsprechende Anwendung.
+(2) § 6 GAPInVeKoSG findet auf Auszahlungsanträge entsprechende Anwendung.
+§ 7  Kürzungen, Verwaltungssanktionen
+und Ausschlüsse
+(1) ¹Hat die oder der Begünstigte die Fördervoraussetzungen, Verpflichtungen oder Auflagen für die Förderung nicht oder nicht vollumfänglich erfüllt (Verstoß), so wird die beantragte Förderung gekürzt. ²Die Kürzung der Förderung darf ohne Berücksichtigung einer möglichen Verzinsung 100 Prozent der beantragten Zahlungen nicht überschreiten.
+(2) ¹Darüber hinaus werden Verwaltungssanktionen verhängt. ²Die Verwaltungssanktionen bestehen in der Zahlung eines über die Kürzung nach Absatz 1 hinausgehenden Betrages durch die Begünstigte oder den Begünstigten. ³Der Betrag der Sanktionierung darf ohne Berücksichtigung einer möglichen Verzinsung 100 Prozent der beantragten Zahlungen nicht überschreiten.
+(3) ¹Zudem kann die oder der Begünstigte von einer Förderung ausgeschlossen werden. ²Der Ausschluss von einer Förderung kann auf einen Zeitraum von höchstens drei aufeinanderfolgenden Jahren festgelegt werden. ³Der Ausschluss kann im Fall eines wiederholten Verstoßes erneut festgelegt werden.
+Kapitel 4  Vorschriften für nicht flächen- und tierbezogene
+ELER-Interventionen
+§ 8  Kürzungen des Auszahlungsbetrages
+um nicht förderfähige Ausgaben
+Sofern die Bewilligungsstelle bei der Verwaltungskontrolle feststellt, dass Beträge nicht förderfähig sind, die die oder der Begünstigte auf der Grundlage des Bewilligungsbescheids im Auszahlungsantrag als förderfähig deklariert und zur Erstattung beantragt hat, so wird der Auszahlungsbetrag um den als nicht förderfähig festgestellten Betrag gekürzt.
+§ 9  Verhängung von Sanktionen
+und Ausschluss bei Vorsatz
+(1) Die Förderung wird ganz abgelehnt oder zurückgenommen, wenn die Fördervoraussetzungen nicht erfüllt sind.
+(2) Die Förderung wird ganz oder teilweise abgelehnt oder ganz oder teilweise zurückgenommen, wenn Verpflichtungen oder sonstige Auflagen, insbesondere die Vorschriften für die öffentliche Auftragsvergabe, die in Unionsvorschriften oder im Bewilligungsbescheid festgelegt sind, nicht eingehalten werden.
+(3) ¹Die Entscheidung darüber, inwieweit die Förderung bei Nichteinhaltung von Verpflichtungen oder sonstigen Auflagen gemäß Absatz 2 abgelehnt oder zurückgenommen wird, erfolgt nach Ermessen der Bewilligungsstelle in Abhängigkeit von Ausmaß, Dauer, Häufigkeit und Schwere des Verstoßes. ²Das Ausmaß eines Verstoßes wird insbesondere anhand der Auswirkungen des Verstoßes auf das Vorhaben insgesamt beurteilt. ³Für die Bestimmung der Dauer ist insbesondere maßgeblich, wie lange die Auswirkungen andauern oder welche Möglichkeiten bestehen, diese Auswirkungen mit angemessenen Mitteln abzustellen. ⁴Die Häufigkeit wird danach beurteilt, ob bereits ähnliche Verstöße innerhalb der Förderperiode 2023 bis 2027 festgestellt wurden, wenn es sich um dieselbe Begünstigte oder denselben Begünstigten und dieselbe Intervention oder Fördermaßnahme handelt. ⁵Die Schwere eines Verstoßes hängt insbesondere davon ab, wie groß die Auswirkungen des Verstoßes unter Berücksichtigung der Ziele der nicht eingehaltenen Verpflichtungen oder sonstigen Auflagen sind.
+(4) Teilt die oder der Begünstigte die Nichteinhaltung einer Verpflichtung oder sonstigen Auflage mit, bevor die Bewilligungsstelle sie oder ihn auf einen entsprechenden Verstoß hingewiesen oder eine Kontrolle vor Ort angekündigt hat, so kann dies im Rahmen der Ermessensentscheidung zur Festsetzung der Sanktionshöhe berücksichtigt werden.
+(5) ¹Bei Verstößen gegen die Vorschriften zur Auftragsvergabe von Auftraggebern gemäß § 98 des Gesetzes gegen Wettbewerbsbeschränkungen orientieren sich die Sanktionen grundsätzlich an den zum Zeitpunkt der Auftragsvergabe einschlägigen „Leitlinien für die Festsetzung von Finanzkorrekturen, die bei Verstößen gegen die Vorschriften für die Vergabe öffentlicher Aufträge auf von der Union finanzierte Ausgaben anzuwenden sind“. ²Sofern mehr als eine Unregelmäßigkeit im selben Vergabeverfahren festgestellt wird, werden die Korrektursätze nicht kumuliert. ³Es wird die Unregelmäßigkeit mit dem höchsten Korrektursatz berücksichtigt.
+(6) Ein Förder- oder Auszahlungsantrag wird abgelehnt, wenn die oder der Begünstigte oder eine vertretungsberechtigte Person die Durchführung einer Vor-Ort-Kontrolle verhindert.
+(7) ¹Wird festgestellt, dass die oder der Begünstigte vorsätzlich falsche Nachweise vorgelegt oder vorsätzlich falsche Angaben gemacht hat, um die Förderung zu erhalten, so wird die Förderung ganz abgelehnt oder zurückgenommen. ²Außerdem wird die oder der Begünstigte in dem Kalenderjahr der Feststellung und dem darauffolgenden Kalenderjahr von derselben Intervention oder Vorhabenart ausgeschlossen.
+§ 10  Ausnahmen von Sanktionen
+Von Sanktionen kann abgesehen werden, wenn
+1. der Verstoß geringfügigen Charakter hat,
+2. der Verstoß auf höhere Gewalt oder außergewöhnliche Umstände zurückzuführen ist,
+3. der Verstoß auf einen Irrtum der Bewilligungsstelle oder einer anderen Behörde zurückzuführen ist und der Irrtum für die von der Sanktion betroffene Person nach vernünftiger Einschätzung nicht erkennbar war,
+4. gegenüber der Bewilligungsstelle glaubhaft dargelegt wird, dass weder die oder der Begünstigte noch die Angehörigen des Betriebs oder beauftragte Dritte den Verstoß verschuldet haben,
+5. die Bewilligungsstelle auf andere als in Nummer 4 genannte Weise zu der Überzeugung gelangt, dass die oder der Begünstigte, die Angehörigen des Betriebs oder beauftragte Dritte den Verstoß nicht verschuldet haben, oder
+6. innerhalb einer angemessenen Frist eine Heilungsmöglichkeit besteht und diese verhältnismäßig ist, der Verstoß die Verwirklichung des Vorhabenziels insgesamt nicht gefährdet und die oder der Begünstigte innerhalb der Frist entsprechende Nachweise zur Zufriedenheit der Bewilligungsstelle vorlegt.
+§ 11  Gestrichene Mittel
+aufgrund von Finanzkorrekturen
+(1) Sind Finanzkorrekturen entweder aufgrund von Kürzungen gemäß § 8 oder aufgrund von Sanktionen gemäß § 9 vorzunehmen, so gelten diese Finanzkorrekturen als „gestrichene Mittel“ im Sinne des Artikels 57 Abs. 1 der Verordnung (EU) 2021/2116, welche die im Bewilligungsbescheid festgesetzte Gesamtförderung entsprechend verringern.
+(2) ¹Gestrichene Mittel dürfen nicht zu demselben Vorhaben zurückfließen. ²Sie gelten wie die in Bezug auf förderfähige Ausgaben ausgezahlten Mittel als verbraucht und können nicht für eventuell nachfolgende Auszahlungsanträge freigesetzt werden.
+§ 12  Rücknahme von Anträgen
+sowie anderen Erklärungen
+(1) Ein Antrag oder eine andere Erklärung kann jederzeit schriftlich ganz oder teilweise bei der Bewilligungsstelle zurückgenommen werden.
+(2) Hat die Bewilligungsstelle die Begünstigte oder den Begünstigten bereits auf einen Verstoß hingewiesen, eine Kontrolle vor Ort angekündigt oder wird bei einer Kontrolle vor Ort ein Verstoß festgestellt, so können die von dem Verstoß betroffenen Teile des Antrags oder der anderen Erklärung nicht zurückgenommen werden.
+Kapitel 5  Verordnungsermächtigungen und
+Schlussbestimmungen
+§ 13  Verordnungsermächtigungen
+(1) ¹Das für den ländlichen Raum zuständige Ministerium (Fachministerium) wird ermächtigt, durch Verordnung die näheren Einzelheiten des Integrierten Verwaltungs- und Kontrollsystems für ELER-Interventionen zu regeln. ²Regelungen im Sinne des Satzes 1 können insbesondere betreffen
+1. das geodatenbasierte Antragssystem gemäß § 6 in Verbindung mit § 3 Nr. 2 GAPInVeKoSG, hier insbesondere nähere Einzelheiten
+a) zu Abweichungsmöglichkeiten bei der Frist zur Antragstellung und
+b) zur Möglichkeit der Änderung und Rücknahme von Anträgen,
+2. das tierbezogene Antragssystem gemäß § 6 in Verbindung mit § 3 Nr. 2 GAPInVeKoSG,
+3. das Flächenmonitoringsystem gemäß § 6 in Verbindung mit § 3 Nr. 3 GAPInVeKoSG,
+4. das Kontroll- und Sanktionssystem gemäß § 6 in Verbindung mit § 3 Nr. 5 GAPInVeKoSG, hier insbesondere nähere Einzelheiten
+a) zur Anwendung der Kürzungen, Sanktionen und Ausschlüsse nach § 7,
+b) zur Berechnung der Kürzungen und Sanktionen,
+c) zur Umsetzung und näheren Regelung der Ausnahmen von Kürzungen und Sanktionen,
+d) zur Reihenfolge der Anwendung der Kürzungen, Sanktionen und Rückforderungen,
+e) zur Sanktionierung eines Verstoßes gegen die Fördervoraussetzungen, der gleichzeitig einen Verstoß gegen die Konditionalität darstellt,
+5. die Auszahlung bei Betriebsübergaben,
+6. die Einführung eines automatischen Antragssystems,
+7. die Nachweis- und Meldepflichten der oder des Begünstigten.
+(2) ¹Das Fachministerium wird ermächtigt, durch Verordnung nähere Einzelheiten zur elektronischen Antragstellung, zur elektronischen Erstellung eines Verwaltungsaktes, zum elektronischen Verwaltungsakt und zur elektronischen Kommunikation mit den Begünstigten zu regeln. ²Regelungen im Sinne des Satzes 1 können insbesondere betreffen
+1. die die Schriftform ersetzende elektronische Form bei Beihilfe-, Förder- und Auszahlungsanträgen sowie Anträgen auf Vergabe einer Registriernummer,
+2. besondere Anforderungen an mithilfe automatischer Einrichtungen erlassene Bescheide.
+(3) Das Fachministerium kann durch Verordnung bestimmen, inwieweit aufgrund des Absatzes 2 erlassene Verordnungen auch gelten für
+1. die Umsetzung der Interventionen nach Titel III Kapitel II der Verordnung (EU) 2021/2115 in Ergänzung zum GAP-Integrierten Verwaltungs- und Kontrollsystem-Gesetz sowie in Ergänzung zu den aufgrund des § 17 GAPInVeKoSG erlassenen Verordnungen, die der Durchführung der Vorschriften zum Integrierten Verwaltungs- und Kontrollsystem der Verordnung (EU) 2021/2116 dienen,
+2. die Umsetzung der Interventionen nach der Verordnung (EU) Nr. 1308/2013 sowie die Umsetzung der Interventionen in bestimmten Sektoren nach Titel III Kapitel III der Verordnung (EU) 2021/2115 und
+3. niedersächsische Zuwendungen oder Billigkeitsleistungen ohne finanzielle Beteiligung der Europäischen Union, wenn diese zusammen mit dem Sammelantrag nach § 5 GAPInVeKoSG oder mit demselben Antragsvordruck oder elektronischen Antragssystem einer Intervention nach Titel III Kapitel IV der Verordnung (EU) 2021/2115 beantragt werden; die Ermächtigung gilt in Bezug auf die elektronische Erstellung eines Verwaltungsaktes, den elektronischen Verwaltungsakt und die elektronische Kommunikation mit den Begünstigten  auch, wenn Zuwendungen oder Billigkeitsleistungen ohne finanzielle Beteiligung der Europäischen Union zusammen mit Interventionen nach Titel III Kapitel IV der Verordnung (EU) 2021/2115 in derselben IT-Anwendung bearbeitet werden.
+(4) Das Fachministerium wird ermächtigt, durch Verordnung Verweisungen auf Vorschriften der in § 1 genannten Unionsregelungen sowie auf das GAP-Integrierte Verwaltungs- und Kontrollsystem-Gesetz zu ändern, soweit es zur Anpassung an Änderungen dieser Vorschriften erforderlich ist.
diff --git a/src/test/java/eu/mulk/aendggner/EndToEndTest.java b/src/test/java/eu/mulk/aendggner/EndToEndTest.java
index 98a996f..90ad4ed 100644
--- a/src/test/java/eu/mulk/aendggner/EndToEndTest.java
+++ b/src/test/java/eu/mulk/aendggner/EndToEndTest.java
@@ -367,4 +367,65 @@
     var html = HtmlRenderer.rendere(synopse, "E2E-Test SächsBeamtVG");
     assertThat(html).contains("§ 47");
   }
+
+  /**
+   * Niedersächsisches Landesrecht (sechste Welle): das Niedersächsische ELER-Fördergesetz (NEFG,
+   * seit 2022 unverändert, Klartext aus dem zweispaltigen Nds. GVBl 2022 Nr. 33 abgeleitet) + das
+   * Gesetz zur Änderung des NEFG vom 28. Januar 2026 (Nds. GVBl 2026 Nr. 10). Prüft den
+   * §-gegliederten Superskript-Modus und die Neufassungsform „erhält folgende Fassung“ auf einem
+   * zweispaltig gesetzten Ausgangsheft.
+   */
+  @Test
+  void nefgAcceptance() throws Exception {
+    var alt = SAMPLEDATA.resolve("Niedersachsen/NEFG-alt.txt");
+    var pdf = SAMPLEDATA.resolve("Niedersachsen/Nds-GVBl-2026-10_ELER-Foerdergesetz-AendG.pdf");
+    assumeTrue(Files.exists(alt) && Files.exists(pdf), "NEFG-Beispieldaten fehlen");
+
+    var gesetz = new eu.mulk.aendggner.gesetz.land.LandesRechtLoader().load(alt);
+    assertThat(gesetz.jurabk()).isEqualTo("NEFG");
+    assertThat(gesetz.langue()).isEqualTo("Niedersächsisches ELER-Fördergesetz");
+    assertThat(gesetz.normen()).hasSize(13);
+    assertThat(gesetz.norm("§ 1").orElseThrow().absaetze()).hasSize(5);
+
+    var text =
+        TextBereiniger.bereinige(
+            new PatchTextExtraktor(eu.mulk.aendggner.aenderung.parse.SuperskriptModus.BEHALTEN)
+                .extrahiere(pdf));
+    // Die laufende GVBl-Fußzeile ist entfernt — sonst hängte sie sich an das Neufassungs-Zitat des
+    // § 1 Abs. 1 und der Befehl würde nicht erkannt.
+    assertThat(text).doesNotContain("Nds. GVBl. 2026 Nr. 10");
+
+    var parseErgebnis = new AenderungsgesetzParser().parse(text, gesetz, null);
+    assertThat(parseErgebnis.artikel()).containsExactly("1");
+    assertThat(parseErgebnis.befehle()).hasSize(7);
+
+    // Fünf der sieben Befehle werden angewandt. Zwei bleiben als „manuell prüfen“ stehen — zwei
+    // Einfügeformen, die ÄndGgner noch nicht beherrscht (bewusst dokumentierte Grenze, nicht
+    // stillschweigend verworfen):
+    //   * Nr. 3 „Nach § 2 wird der folgende § 2 a eingefügt“ — Einfügung eines §-Blocks mit einer
+    //     durch Leerzeichen getrennten Sachnummer („§ 2 a“).
+    //   * Nr. 5 „In Kapitel 4 wird nach § 12 der folgende neue § 13 angefügt“ — kapitelbezogene
+    //     §-Block-Einfügung.
+    var anwendung = BefehlAnwender.anwenden(gesetz, parseErgebnis.befehle());
+    assertThat(anwendung.anzahlAngewandt()).isEqualTo(5);
+    var manuellPfade =
+        anwendung.protokoll().stream()
+            .filter(a -> a.status() == BefehlAnwender.Status.MANUELL_PRUEFEN)
+            .map(a -> a.befehl().provenienz().gliederungsPfad())
+            .toList();
+    assertThat(manuellPfade).containsExactlyInAnyOrder("3.", "5.");
+
+    // Stichproben: „erhält folgende Fassung“ (§ 1 Abs. 1, § 2), Angaben-Ersetzung (§ 1 Abs. 5),
+    // Wörter-Einfügung (§ 6 Abs. 1) und §-Umnummerierung (§ 13 → § 14).
+    var neu = anwendung.neu();
+    assertThat(neu.norm("§ 1").orElseThrow().absaetze().get(0).text())
+        .contains("Verordnung (EU) 2021/2116");
+    assertThat(neu.norm("§ 1").orElseThrow().absaetze().get(4).text()).contains("§ 14 Abs. 3");
+    assertThat(neu.norm("§ 2").orElseThrow().titel()).isEqualTo("Registriernummer");
+    assertThat(neu.norm("§ 6").orElseThrow().gesamtText()).contains("8 bis 10");
+    assertThat(neu.norm("§ 14")).isPresent();
+
+    var synopse = SynopseBuilder.baue(gesetz, anwendung, parseErgebnis.warnungen(), false);
+    assertThat(HtmlRenderer.rendere(synopse, "E2E-Test NEFG")).contains("§ 1");
+  }
 }
