2006-09-21  Kristian Høgsberg  <krh@redhat.com>

	* glib/poppler-page.cc (_poppler_page_new): Make PopplerPage
	reference its document throughout the lifetime of the page (#7005).
diff --git a/ChangeLog b/ChangeLog
index e79becb..1cc6635 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2006-09-21  Kristian Høgsberg  <krh@redhat.com>
 
+	* glib/poppler-page.cc (_poppler_page_new): Make PopplerPage
+	reference its document throughout the lifetime of the page (#7005).
+
 	* poppler/Gfx.cc: Remove the right out->updateAll() call.
 
 2006-09-20  Kristian Høgsberg  <krh@redhat.com>
diff --git a/glib/poppler-page.cc b/glib/poppler-page.cc
index e2ef975..83d7b3b 100644
--- a/glib/poppler-page.cc
+++ b/glib/poppler-page.cc
@@ -53,7 +53,7 @@
   g_return_val_if_fail (POPPLER_IS_DOCUMENT (document), NULL);
 
   poppler_page = (PopplerPage *) g_object_new (POPPLER_TYPE_PAGE, NULL, NULL);
-  poppler_page->document = document;
+  poppler_page->document = (PopplerDocument *) g_object_ref (document);
   poppler_page->page = page;
   poppler_page->index = index;
 
@@ -65,6 +65,9 @@
 {
   PopplerPage *page = POPPLER_PAGE (object);
 
+  g_object_unref (page->document);
+  page->document = NULL;
+
   if (page->gfx != NULL)
     delete page->gfx;
   if (page->text_dev != NULL)