diff --git a/ChangeLog b/ChangeLog
index fa34d0f..13fe6ca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2006-02-28  Kristian Høgsberg  <krh@redhat.com>
 
+	* configure.ac: Bump release to 0.5.1.
+
+	* NEWS: Sum up 0.5.1 changes so far.
+
+	* TextOutputDev.h: add getters for a couple of attributes.
+	
+	* glib/Makefile.am: 
+	* poppler/Makefile.am: Move cairo link dependency to glib bindings.
+
+2006-02-28  Kristian Høgsberg  <krh@redhat.com>
+
 	* goo/gmem.c: (gmalloc), (grealloc):
 	* poppler/JBIG2Stream.cc:
 	* poppler/Stream.cc:
diff --git a/NEWS b/NEWS
index 7132586..065c644 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,13 @@
+Release 0.5.1
+
+	- Support for embedded files.
+	- Handle 0-width lines correctly.
+	- Avoid external file use when opening fonts.
+	- Only use vector fonts returned from fontconfig (#5758).
+	- Fix scaled 1x1 pixmaps use for drawing lines (#3387).
+	- drawSoftMaskedImage support in cairo backend.
+	- Misc bug fixes: #5922, #5946, #5749, #5952, #4030, #5420.
+
 Release 0.5.0
 
 	- Font matching code for non embedded fonts now use fontconfig
diff --git a/configure.ac b/configure.ac
index deb1703..0686a53 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
 AC_PREREQ(2.59)
-AC_INIT(poppler, 0.5.0)
+AC_INIT(poppler, 0.5.1)
 AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
 AM_CONFIG_HEADER(config.h)
 AM_CONFIG_HEADER(poppler/poppler-config.h)
diff --git a/glib/Makefile.am b/glib/Makefile.am
index 443d48b..b411320 100644
--- a/glib/Makefile.am
+++ b/glib/Makefile.am
@@ -8,7 +8,7 @@
 
 endif
 
-SUBDIRS=. reference
+SUBDIRS = . reference
 INCLUDES =					\
 	-I$(top_srcdir)				\
 	-I$(top_srcdir)/poppler			\
@@ -77,10 +77,11 @@
 	poppler.cc				\
 	poppler-private.h
 
-libpoppler_glib_la_LIBADD =			\
-	$(top_builddir)/poppler/libpoppler.la	\
-	$(POPPLER_GLIB_LIBS)			\
-	$(FREETYPE_LIBS)			\
+libpoppler_glib_la_LIBADD =				\
+	$(top_builddir)/poppler/libpoppler.la		\
+	$(top_builddir)/poppler/libpoppler-cairo.la	\
+	$(POPPLER_GLIB_LIBS)				\
+	$(FREETYPE_LIBS)				\
 	$(cairo_libs)
 
 libpoppler_glib_la_LDFLAGS = -version-info 1:0:0
diff --git a/poppler/Makefile.am b/poppler/Makefile.am
index de1c691..abb0dd2 100644
--- a/poppler/Makefile.am
+++ b/poppler/Makefile.am
@@ -34,19 +34,16 @@
 
 if BUILD_CAIRO_OUTPUT
 
-cairo_sources =					\
-	CairoFontEngine.cc			\
-	CairoOutputDev.cc
-
-cairo_headers =					\
-	CairoFontEngine.h			\
-	CairoOutputDev.h
+poppler_cairo = libpoppler-cairo.la
 
 cairo_includes =				\
 	$(CAIRO_CFLAGS)
 
-cairo_libs =					\
-	$(CAIRO_LIBS)
+libpoppler_cairo_la_SOURCES =			\
+	CairoFontEngine.cc			\
+	CairoFontEngine.h			\
+	CairoOutputDev.cc			\
+	CairoOutputDev.h
 
 endif
 
@@ -82,11 +79,12 @@
 
 lib_LTLIBRARIES = libpoppler.la
 
+noinst_LTLIBRARIES = $(poppler_cairo)
+
 libpoppler_la_LIBADD =				\
 	$(top_builddir)/goo/libgoo.la		\
 	$(top_builddir)/fofi/libfofi.la		\
 	$(splash_libs)				\
-	$(cairo_libs)				\
 	$(arthur_libs)				\
 	$(libjpeg_libs)				\
 	$(zlib_libs)				\
@@ -99,7 +97,6 @@
 poppler_includedir = $(includedir)/poppler
 poppler_include_HEADERS =	\
 	$(splash_headers)	\
-	$(cairo_headers)	\
 	$(arthur_headers)	\
 	Annot.h			\
 	Array.h			\
diff --git a/poppler/TextOutputDev.h b/poppler/TextOutputDev.h
index ba9146f..fd052df 100644
--- a/poppler/TextOutputDev.h
+++ b/poppler/TextOutputDev.h
@@ -101,7 +101,7 @@
 
 #if TEXTOUT_WORD_LIST
   int getLength() { return len; }
-  Unicode getChar(int idx) { return text[idx]; }
+  const Unicode *getChar(int idx) { return &text[idx]; }
   GooString *getText();
   GooString *getFontName() { return font->fontName; }
   void getColor(double *r, double *g, double *b)
@@ -113,7 +113,10 @@
   int getCharPos() { return charPos; }
   int getCharLen() { return charLen; }
 #endif
-
+  double getEdge(int i) { return edge[i]; }
+  double getBaseline () { return base; }
+  GBool hasSpaceAfter  () { return spaceAfter; }
+  TextWord* nextWord () { return next; };
 private:
 
   int rot;			// rotation, multiple of 90 degrees
diff --git a/qt/Makefile.am b/qt/Makefile.am
index 08ccdbd..30e3587 100644
--- a/qt/Makefile.am
+++ b/qt/Makefile.am
@@ -18,6 +18,7 @@
 	poppler-fontinfo.cc			\
 	poppler-page.cc				\
 	poppler-page-transition.cc		\
+	poppler-page-transition-private.h	\
 	poppler-private.h
 
 libpoppler_qt_la_LIBADD = 			\
diff --git a/test/Makefile.am b/test/Makefile.am
index 1c631de..744d851 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -45,18 +45,20 @@
 gtk_cairo_test_SOURCES =			\
        gtk-cairo-test.cc
 
-gtk_cairo_test_LDADD =				\
-	$(top_builddir)/poppler/libpoppler.la	\
-	$(CAIRO_LIBS)				\
+gtk_cairo_test_LDADD =					\
+	$(top_builddir)/poppler/libpoppler.la		\
+	$(top_builddir)/poppler/libpoppler-cairo.la	\
+	$(CAIRO_LIBS)					\
 	$(GTK_TEST_LIBS)
 
 pdf_inspector_SOURCES =			\
        pdf-inspector.cc
 
-pdf_inspector_LDADD =				\
-	$(top_builddir)/poppler/libpoppler.la	\
-	$(CAIRO_LIBS)				\
-	$(FREETYPE_LIBS)			\
+pdf_inspector_LDADD =					\
+	$(top_builddir)/poppler/libpoppler.la		\
+	$(top_builddir)/poppler/libpoppler-cairo.la	\
+	$(CAIRO_LIBS)					\
+	$(FREETYPE_LIBS)				\
 	$(GTK_TEST_LIBS)
 
 EXTRA_DIST =					\
diff --git a/utils/Makefile.am b/utils/Makefile.am
index c54e83b..3b50234 100644
--- a/utils/Makefile.am
+++ b/utils/Makefile.am
@@ -1,3 +1,15 @@
+if BUILD_SPLASH_OUTPUT
+
+pdftoppm_SOURCES =				\
+	pdftoppm.cc				\
+	$(common)
+
+pdftoppm_binary = pdftoppm
+
+pdftoppm_manpage = pdftoppm.1
+
+endif
+
 INCLUDES =					\
 	-I$(top_srcdir)				\
 	-I$(top_srcdir)/utils			\
@@ -5,7 +17,8 @@
 	$(UTILS_CFLAGS)
 
 LDADD =						\
-	$(top_builddir)/poppler/libpoppler.la
+	$(top_builddir)/poppler/libpoppler.la	\
+	$(UTILS_LIBS)
 
 bin_PROGRAMS =					\
 	pdffonts				\
@@ -26,7 +39,6 @@
 	pdftotext.1				\
 	pdftohtml.1				\
 	$(pdftoppm_manpage)
-	
 
 common = parseargs.c parseargs.h
 
@@ -62,14 +74,7 @@
 	HtmlOutputDev.h				\
 	$(common)
 
-if BUILD_SPLASH_OUTPUT
+# Yay, automake!  It should be able to figure out that it has to dist
+# this file, but nooo.  So we just add it here.
 
-pdftoppm_SOURCES =				\
-	pdftoppm.cc				\
-	$(common)
-
-pdftoppm_binary = pdftoppm
-
-pdftoppm_manpage =pdftoppm.1
-
-endif
\ No newline at end of file
+EXTRA_DIST = pdftoppm.1
