diff --git a/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java b/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java
index e135b43..260c01c 100644
--- a/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java
+++ b/fop-core/src/main/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java
@@ -653,6 +653,12 @@
             LeafPosition restartPosition) {
         log.trace("Restarting line breaking from index " + restartPosition.getIndex());
         int parIndex = restartPosition.getLeafPos();
+
+        for (int i = 0; i < parIndex; i++) {
+            knuthParagraphs.remove(0);
+        }
+        parIndex = 0;
+
         KnuthSequence paragraph = knuthParagraphs.get(parIndex);
         if (paragraph instanceof Paragraph) {
             ((Paragraph) paragraph).ignoreAtStart = 0;
diff --git a/fop/test/layoutengine/standard-testcases/flow_changing-ipd_6.xml b/fop/test/layoutengine/standard-testcases/flow_changing-ipd_6.xml
new file mode 100644
index 0000000..2555770
--- /dev/null
+++ b/fop/test/layoutengine/standard-testcases/flow_changing-ipd_6.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<!-- $Id$ -->
+<testcase>
+  <info>
+    <p>
+      This test checks that a list can be relaid out when a change in ipd happens across pages.
+    </p>
+  </info>
+  <fo>
+<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
+  <fo:layout-master-set>
+    <fo:simple-page-master master-name="PageFront" page-width="8.5in" page-height="11in" margin-bottom="4mm" margin-right="6mm" margin-top="5mm" margin-left="7mm">
+      <fo:region-body margin-bottom="24.87mm" margin-right="55.03mm" margin-top="0mm" margin-left="0mm" region-name="letterPageBody"/>      
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="AlternativePage" page-width="8.5in" page-height="11in" margin-bottom="4mm" margin-right="6mm" margin-top="5mm" margin-left="7mm">
+      <fo:region-body margin-right="0mm" margin-bottom="24.87mm" margin-top="24.87mm" margin-left="0mm" region-name="letterPageBody"/>      
+    </fo:simple-page-master>
+    <fo:simple-page-master master-name="BackPage" page-width="11in" page-height="8.5in" margin-bottom="4mm" margin-right="6mm" margin-top="5mm" margin-left="7mm">
+      <fo:region-body margin-bottom="24.87mm" margin-right="0mm" margin-top="0mm" margin-left="0mm" region-name="letterPageBody" />
+    </fo:simple-page-master>
+    <fo:page-sequence-master master-name="LetterPages">
+      <fo:repeatable-page-master-alternatives>
+        <fo:conditional-page-master-reference page-position="first" master-reference="PageFront"/>
+        <fo:conditional-page-master-reference page-position="rest" master-reference="AlternativePage"/>
+        <fo:conditional-page-master-reference page-position="last" master-reference="BackPage"/>
+      </fo:repeatable-page-master-alternatives>
+    </fo:page-sequence-master>
+  </fo:layout-master-set>
+  <fo:page-sequence initial-page-number="auto" force-page-count="auto" master-reference="LetterPages">   
+    <fo:flow flow-name="letterPageBody">     
+       <fo:block linefeed-treatment="preserve" background-color="orange">1abitasse platea dictumst quisque sagittis. Orci sagittis eu volutpat odio facilisis mauris sit amet massa. Sed turpis tincidunt id aliquet risus feugiat in ante. Scelerisque eleifend donec pretium vulputate sapien nec sagittis aliquam malesuada. Sed blandit libero volutpat sed. Pulvinar etiam non quam lacus suspendisse faucibus. Leo a diam sollicitudin tempor id eu nisl nunc mi. Sapien eget mi proin sed libero enim. Amet nisl purus in mollis nunc. Ut placerat orci nulla pellentesque dignissim enim. Ipsum suspendisse ultrices gravida dictum fusce ut placerat orci. Eget felis eget nunc lobortis mattis aliquam.
+2orta lorem mollis aliquam ut porttitor. In mollis nunc sed id semper risus in hendrerit. Nibh ipsum consequat nisl vel. Nibh ipsum consequat nisl vel pretium lectus quam id. Mi eget mauris pharetra et. Lacus sed viverra tellus in hac. Odio euismod lacinia at quis risus sed vulputate. Sociis natoque penatibus et magnis dis parturient. Nunc faucibus a pellentesque sit amet porttitor eget. Cras ornare arcu dui vivamus arcu felis bibendum ut. Sit amet massa vitae tortor condimentum lacinia. Et ligula ullamcorper malesuada proin libero nunc consequat interdum varius.
+3uis at consectetur lorem donec massa sapien faucibus et molestie. Id venenatis a condimentum vitae sapien pellentesque habitant morbi. Sed cras ornare arcu dui vivamus arcu felis bibendum ut. Viverra aliquet eget sit amet. Varius vel pharetra vel turpis nunc eget lorem dolor sed. Enim nec dui nunc mattis enim ut. Elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Sit amet mauris commodo quis imperdiet. Est sit amet facilisis magna etiam tempor orci. Porttitor leo a diam sollicitudin tempor id eu nisl nunc. Netus et malesuada fames ac. Diam quam nulla porttitor massa id neque aliquam vestibulum morbi.
+4lacerat orci nulla pellentesque dignissim enim. Felis eget velit aliquet sagittis id consectetur purus ut faucibus. Turpis egestas sed tempus urna et pharetra pharetra. Pellentesque massa placerat duis ultricies. Accumsan sit amet nulla facilisi morbi tempus iaculis. Ultrices vitae auctor eu augue ut lectus arcu bibendum at. Nisi lacus sed viverra tellus in hac habitasse platea. Viverra orci sagittis eu volutpat odio. Lobortis elementum nibh tellus molestie nunc non blandit. Mauris augue neque gravida in fermentum et sollicitudin ac. Arcu cursus vitae congue mauris. Quam pellentesque nec nam aliquam sem et tortor.
+5ellus integer feugiat scelerisque varius morbi enim nunc faucibus. Eu feugiat pretium nibh ipsum consequat nisl. Aenean pharetra magna ac placerat vestibulum lectus mauris ultrices eros. Integer enim neque volutpat ac tincidunt vitae. Pellentesque elit eget gravida cum. Elementum pulvinar etiam non quam lacus suspendisse faucibus interdum posuere. Eget egestas purus viverra accumsan in nisl nisi scelerisque. Cum sociis natoque penatibus et. Pulvinar sapien et ligula ullamcorper malesuada proin libero nunc. Morbi quis commodo odio aenean sed adipiscing diam donec. Vitae congue eu consequat ac felis donec. Ac tortor vitae purus faucibus.
+6ellus mauris a diam maecenas sed enim. Vitae semper quis lectus nulla. Nunc consequat interdum varius sit amet. Id faucibus nisl tincidunt eget nullam. Scelerisque mauris pellentesque pulvinar pellentesque. Sed adipiscing diam donec adipiscing tristique risus nec feugiat in. Dui vivamus arcu felis bibendum ut tristique. Vel turpis nunc eget lorem dolor sed viverra. Odio eu feugiat pretium nibh ipsum consequat nisl vel pretium. Turpis tincidunt id aliquet risus. Libero nunc consequat interdum varius sit amet mattis vulputate enim. Pellentesque elit eget gravida cum sociis natoque.
+7aculis eu non diam phasellus vestibulum lorem sed risus ultricies. Etiam tempor orci eu lobortis elementum nibh. Faucibus et molestie ac feugiat. Elementum eu facilisis sed odio morbi quis commodo odio. Scelerisque eleifend donec pretium vulputate sapien. Sed turpis tincidunt id aliquet risus. Massa eget egestas purus viverra accumsan. Turpis massa sed elementum tempus egestas sed. Sem nulla pharetra diam sit amet nisl suscipit adipiscing. Proin sed libero enim sed faucibus turpis in eu. Morbi quis commodo odio aenean. Proin sagittis nisl rhoncus mattis rhoncus.
+8u non diam phasellus vestibulum lorem sed risus ultricies tristique. Lectus mauris ultrices eros in cursus. Odio aenean sed adipiscing diam donec adipiscing tristique risus nec. Commodo quis imperdiet massa tincidunt nunc. Interdum varius sit amet mattis vulputate enim nulla aliquet porttitor. Semper viverra nam libero justo. Duis at tellus at urna. Volutpat maecenas volutpat blandit aliquam etiam erat. Feugiat in ante metus dictum at tempor commodo ullamcorper a. Ultricies leo integer malesuada nunc vel risus commodo. Adipiscing vitae proin sagittis nisl rhoncus mattis rhoncus urna neque. Sem fringilla ut morbi tincidunt augue interdum velit.
+9attis aliquam faucibus purus in massa tempor. Congue mauris rhoncus aenean vel. Natoque penatibus et magnis dis parturient montes nascetur ridiculus. Ut ornare lectus sit amet est placerat in egestas erat. Pellentesque habitant morbi tristique senectus et netus et. Est velit egestas dui id ornare arcu odio ut sem. Orci nulla pellentesque dignissim enim. Sed vulputate odio ut enim blandit volutpat. Accumsan tortor posuere ac ut. Malesuada proin libero nunc consequat interdum. In pellentesque massa placerat duis ultricies lacus. Nibh tortor id aliquet lectus proin nibh nisl condimentum.
+10ismod nisi porta lorem mollis aliquam ut porttitor leo. Vel pharetra vel turpis nunc. Commodo viverra maecenas accumsan lacus. Quisque sagittis purus sit amet volutpat. Suspendisse interdum consectetur libero id faucibus nisl. Viverra nam libero justo laoreet sit amet. Etiam tempor orci eu lobortis. Pharetra pharetra massa massa ultricies mi quis hendrerit. Vitae congue eu consequat ac felis donec. Libero justo laoreet sit amet cursus sit amet. Phasellus faucibus scelerisque eleifend donec pretium. Habitant morbi tristique senectus et.
+11tae nunc sed velit dignissim sodales ut eu sem integer. Justo laoreet sit amet cursus sit. Id volutpat lacus laoreet non curabitur gravida arcu ac. Ultrices in iaculis nunc sed augue lacus viverra. Maecenas volutpat blandit aliquam etiam erat. Quisque non tellus orci ac auctor augue. Massa sapien faucibus et molestie ac feugiat sed lectus. Quis auctor elit sed vulputate mi. Odio morbi quis commodo odio aenean. Aliquam sem fringilla ut morbi tincidunt augue interdum. Turpis egestas pretium aenean pharetra magna ac. Mauris nunc congue nisi vitae suscipit tellus mauris a.
+12am vel quam elementum pulvinar etiam. Scelerisque mauris pellentesque pulvinar pellentesque. Adipiscing tristique risus nec feugiat in fermentum posuere urna. Erat pellentesque adipiscing commodo elit. Bibendum at varius vel pharetra vel turpis nunc eget lorem. Ante metus dictum at tempor commodo ullamcorper. Arcu ac tortor dignissim convallis aenean et tortor. A scelerisque purus semper eget duis at. At tempor commodo ullamcorper a lacus vestibulum sed. Vitae elementum curabitur vitae nunc sed velit. Venenatis tellus in metus vulputate eu. Condimentum mattis pellentesque id nibh tortor id aliquet lectus.
+13spendisse ultrices gravida dictum fusce ut placerat orci nulla. Id volutpat lacus laoreet non. Bibendum arcu vitae elementum curabitur vitae nunc sed velit dignissim. Leo a diam sollicitudin tempor id eu. Vel orci porta non pulvinar neque laoreet. Quis imperdiet massa tincidunt nunc. Porttitor eget dolor morbi non arcu risus quis varius. Ac odio tempor orci dapibus ultrices. Enim diam vulputate ut pharetra. Ullamcorper eget nulla facilisi etiam dignissim diam quis enim lobortis. Pulvinar elementum integer enim neque volutpat ac tincidunt vitae. Quis vel eros donec ac odio tempor orci dapibus.
+14as semper auctor neque vitae tempus quam pellentesque nec. Sagittis eu volutpat odio facilisis mauris sit amet. Blandit turpis cursus in hac habitasse platea. Quis auctor elit sed vulputate mi sit amet mauris commodo. Laoreet sit amet cursus sit amet dictum sit amet. Mattis molestie a iaculis at erat pellentesque adipiscing commodo. Cras pulvinar mattis nunc sed blandit libero volutpat sed. Volutpat consequat mauris nunc congue. Volutpat diam ut venenatis tellus in metus vulputate eu. Massa sapien faucibus et molestie ac feugiat sed. Pretium lectus quam id leo in vitae. Pretium vulputate sapien nec sagittis aliquam malesuada bibendum arcu.
+15rta nibh venenatis cras sed felis eget velit. Nisl nisi scelerisque eu ultrices vitae. Accumsan lacus vel facilisis volutpat est velit. Facilisis gravida neque convallis a cras semper auctor neque vitae. Tempor id eu nisl nunc mi ipsum. Adipiscing commodo elit at imperdiet dui accumsan sit. Tellus in metus vulputate eu scelerisque felis. Magna etiam tempor orci eu lobortis. Mattis enim ut tellus elementum sagittis vitae. Sit amet consectetur adipiscing elit duis tristique sollicitudin nibh sit. Sed ullamcorper morbi tincidunt ornare massa eget egestas purus. Eget est lorem ipsum dolor sit amet consectetur.
+16rmentum odio eu feugiat pretium nibh ipsum. Cras sed felis eget velit aliquet sagittis id consectetur. Amet commodo nulla facilisi nullam vehicula ipsum a. Nibh tellus molestie nunc non blandit massa enim nec. Urna neque viverra justo nec ultrices dui. Orci sagittis eu volutpat odio. Auctor augue mauris augue neque. Felis eget velit aliquet sagittis id consectetur purus ut faucibus. In ornare quam viverra orci sagittis eu. Pharetra sit amet aliquam id. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin. Vivamus arcu felis bibendum ut.
+17gnissim enim sit amet venenatis urna cursus eget nunc. Commodo viverra maecenas accumsan lacus vel facilisis volutpat. Velit aliquet sagittis id consectetur purus ut faucibus pulvinar elementum. Diam quis enim lobortis scelerisque fermentum dui. Vitae tempus quam pellentesque nec nam. Luctus venenatis lectus magna fringilla urna porttitor rhoncus d</fo:block>      
+    </fo:flow>
+  </fo:page-sequence>
+</fo:root>
+  </fo>
+  <checks>
+    <eval expected="3" xpath="count(//pageViewport)" />
+    <eval expected="1abitasse" xpath="//pageViewport[1]//word" />
+    <eval expected="7aculis" xpath="//pageViewport[2]//lineArea[4]//word" />
+    <eval expected="14as" xpath="//pageViewport[3]//lineArea[3]//word" />
+  </checks>
+</testcase>
