s.ReadDataFromSourceFS()
        }
 
+       // we reuse the state, so have to do some cleanup before we can rebuild.
+       s.resetPageBuildState()
+
        // If a content file changes, we need to reload only it and re-render the entire site.
        if len(sourceChanged) > 0 {
 
        s.Info.Sections = s.Sections
 }
 
+// Prepare pages for a new full build.
+func (s *Site) resetPageBuildState() {
+
+       s.Info.paginationPageCount = 0
+
+       for _, p := range s.Pages {
+               p.scratch = newScratch()
+
+       }
+}
+
 func (s *Site) assembleSections() {
        for i, p := range s.Pages {
                s.Sections.Add(p.Section(), WeightedPage{s.Pages[i].Weight, s.Pages[i]}, s.Info.preserveTaxonomyNames)