diff --git a/backend/pdf/ev-poppler.cc b/backend/pdf/ev-poppler.cc
index 0a073ca..3889898 100644
--- a/backend/pdf/ev-poppler.cc
+++ b/backend/pdf/ev-poppler.cc
@@ -1,6 +1,8 @@
 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */
 /* pdfdocument.h: Implementation of EvDocument for PDF
  * Copyright (C) 2004, Red Hat, Inc.
+ * Copyright (C) 2009, Juanjo Marín <juanj.marin@juntadeandalucia.es>. Code for 
+ * obtaining license information from metadata.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -62,6 +64,13 @@
 #define HAVE_CAIRO_PRINT
 #endif
 
+/* fields from the XMP Rights Management Schema, XMP Specification Sept 2005, pag. 45 */
+#define LICENSE_MARKED "/x:xmpmeta/rdf:RDF/rdf:Description/xmpRights:Marked"
+#define LICENSE_TEXT "/x:xmpmeta/rdf:RDF/rdf:Description/dc:rights/rdf:Alt/rdf:li[lang('%s')]"
+#define LICENSE_WEB_STATEMENT "/x:xmpmeta/rdf:RDF/rdf:Description/xmpRights:WebStatement"
+/* license field from Creative Commons schema, http://creativecommons.org/ns */
+#define LICENSE_URI "/x:xmpmeta/rdf:RDF/rdf:Description/cc:license/@rdf:resource"
+
 typedef struct {
 	PdfDocument *document;
 	char *text;
@@ -669,6 +678,149 @@ pdf_document_get_format_from_metadata (const char *metadata)
 }
 
 
+static void
+pdf_document_get_license_from_metadata (const char *metadata, EvDocumentInfo *info)
+{
+	xmlDocPtr doc;
+	xmlXPathContextPtr xpathCtx;
+	xmlXPathObjectPtr xpathObj;
+	xmlChar *marked = NULL;
+	
+	const char *language_string;
+	char  *aux;
+	gchar **tags;
+	gchar *tag, *tag_aux;
+	int i, j;
+
+	doc = xmlParseMemory (metadata, strlen (metadata));
+	if (doc == NULL)
+		return;		/* invalid xml metadata */
+
+	xpathCtx = xmlXPathNewContext (doc);
+	if (xpathCtx == NULL) {
+		xmlFreeDoc (doc);
+		return;		/* invalid xpath context */
+	}
+
+	/* register namespaces */
+	xmlXPathRegisterNs (xpathCtx, BAD_CAST "x", 
+		BAD_CAST "adobe:ns:meta/");
+	xmlXPathRegisterNs (xpathCtx, BAD_CAST "rdf", 
+		BAD_CAST "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
+	xmlXPathRegisterNs (xpathCtx, BAD_CAST "dc", 
+		BAD_CAST "http://purl.org/dc/elements/1.1/");
+	/* XMP Rights Management Schema */
+	xmlXPathRegisterNs (xpathCtx, BAD_CAST "xmpRights", 
+		BAD_CAST "http://ns.adobe.com/xap/1.0/rights/");
+	/* Creative Commons Schema */
+	xmlXPathRegisterNs (xpathCtx, BAD_CAST "cc", 
+		BAD_CAST "http://creativecommons.org/ns#");
+	
+	/* checking if the document has been marked as defined on the XMP Rights 
+	 * Management Schema */
+	xpathObj = xmlXPathEvalExpression (BAD_CAST LICENSE_MARKED, xpathCtx);
+	if (xpathObj != NULL) {
+		if (xpathObj->nodesetval != NULL &&
+		    xpathObj->nodesetval->nodeNr != 0)
+			marked = xmlNodeGetContent (
+				xpathObj->nodesetval->nodeTab[0]);
+		xmlXPathFreeObject (xpathObj);
+	}
+	/* a) Not marked => No XMP Rights information */
+	if (!marked) {
+		xmlFree (marked);
+		xmlXPathFreeContext (xpathCtx);
+		xmlFreeDoc (doc);
+		return;
+	}
+	/* b) Marked False => Public Domain, no copyrighted material and no 
+	 * license needed */ 
+	if (g_strrstr ((char *) marked, "False") != NULL)
+			info->license.text = _("This work is in the Public Domain.");
+	/* c) Marked True => Copyrighted material*/
+	else {
+		/* Checking usage terms as defined by the XMP Rights Management 
+		 * Schema. This field is recomended to be checked by Creative 
+		 * Commons */
+		/* 1) checking for a suitable localized string */
+		language_string =
+		       pango_language_to_string (gtk_get_default_language ());
+		tags = g_strsplit (language_string, "-", -1);
+		i = g_strv_length (tags);
+		while (i-- && !info->license.text) {
+			tag = g_strdup (tags[0]);
+			for (j=1; j <= i;  j++) {
+				tag_aux = g_strdup_printf ("%s-%s", tag, tags[j]);
+				g_free (tag);
+				tag = tag_aux;
+			}
+			aux = (char *) g_strdup_printf (LICENSE_TEXT, tag);
+			xpathObj = xmlXPathEvalExpression (BAD_CAST aux,
+							   xpathCtx);
+			if (xpathObj != NULL) {
+				if (xpathObj->nodesetval != NULL && 
+				    xpathObj->nodesetval->nodeNr != 0)
+					info->license.text = (char *) 
+					     xmlNodeGetContent (
+					        xpathObj->nodesetval->nodeTab[0]);
+				xmlXPathFreeObject (xpathObj);
+			}
+			g_free (tag);
+			g_free (aux);
+		}
+		g_strfreev(tags);
+		/* 2) if not, use the default string */
+		if (!info->license.text) {
+			aux = (char *) g_strdup_printf (LICENSE_TEXT,
+							"x-default");
+			xpathObj = xmlXPathEvalExpression (BAD_CAST aux,
+							   xpathCtx);
+			if (xpathObj != NULL) {
+				if (xpathObj->nodesetval != NULL && 
+				    xpathObj->nodesetval->nodeNr != 0)
+					info->license.text = (char *) 
+					     xmlNodeGetContent (
+					        xpathObj->nodesetval->nodeTab[0]);
+				xmlXPathFreeObject (xpathObj);
+			}
+			g_free (aux);
+		}
+		
+		/* Checking the license URI as defined by the Creative Commons 
+		 * Schema. This field is recomended to be checked by Creative 
+		 * Commons */
+		xpathObj = xmlXPathEvalExpression (BAD_CAST LICENSE_URI,
+						   xpathCtx);
+		if (xpathObj != NULL) {
+			if (xpathObj->nodesetval != NULL && 
+			    xpathObj->nodesetval->nodeNr != 0)
+				info->license.uri = (char *) 
+				     xmlNodeGetContent (
+				        xpathObj->nodesetval->nodeTab[0]);
+			xmlXPathFreeObject (xpathObj);
+		}
+		
+		/* Checking the web statement as defined by the XMP Rights 
+		 * Management Schema. Checking it out is a sort of above-and-beyond
+		 * the basic recommendations by Creative Commons. It can be 
+		 * considered as a "reinforcement" approach to add certainty. */
+		xpathObj = xmlXPathEvalExpression (BAD_CAST LICENSE_WEB_STATEMENT, 
+						   xpathCtx);
+		if (xpathObj != NULL) {
+			if (xpathObj->nodesetval != NULL &&
+			    xpathObj->nodesetval->nodeNr != 0)
+				info->license.web_statement = (char *) 
+					xmlNodeGetContent (
+					   xpathObj->nodesetval->nodeTab[0]);
+			xmlXPathFreeObject (xpathObj);
+		}
+	}
+	xmlFree (marked);
+	xmlXPathFreeContext (xpathCtx);
+	xmlFreeDoc (doc);
+}
+
+
 static EvDocumentInfo *
 pdf_document_get_info (EvDocument *document)
 {
@@ -699,7 +851,8 @@ pdf_document_get_info (EvDocument *document)
 			    EV_DOCUMENT_INFO_LINEARIZED |
 			    EV_DOCUMENT_INFO_N_PAGES |
 			    EV_DOCUMENT_INFO_SECURITY | 
-		            EV_DOCUMENT_INFO_PAPER_SIZE;
+		            EV_DOCUMENT_INFO_PAPER_SIZE |
+			    EV_DOCUMENT_INFO_LICENSE;
 
 	g_object_get (PDF_DOCUMENT (document)->document,
 		      "title", &(info->title),
@@ -725,6 +878,7 @@ pdf_document_get_info (EvDocument *document)
 			g_free (info->format);
 			info->format = fmt;
 		}
+		pdf_document_get_license_from_metadata (metadata, info);
 		g_free (metadata);
 	}
 
diff --git a/libdocument/ev-document-info.h b/libdocument/ev-document-info.h
index a75f681..1b25c88 100644
--- a/libdocument/ev-document-info.h
+++ b/libdocument/ev-document-info.h
@@ -98,7 +98,9 @@ typedef enum
 	EV_DOCUMENT_INFO_PERMISSIONS = 1 << 13,
 	EV_DOCUMENT_INFO_N_PAGES = 1 << 14,
 	EV_DOCUMENT_INFO_SECURITY = 1 << 15,
-	EV_DOCUMENT_INFO_PAPER_SIZE = 1 << 16
+	EV_DOCUMENT_INFO_PAPER_SIZE = 1 << 16,
+	EV_DOCUMENT_INFO_LICENSE = 1 << 17,
+
 } EvDocumentInfoFields;
 
 struct _EvDocumentInfo
@@ -121,7 +123,11 @@ struct _EvDocumentInfo
 	int   n_pages;
 	double paper_height;
 	double paper_width;
-
+	struct License {
+		char *text;
+		char *uri;
+		char *web_statement;
+	} license;
 	/* Mask of all the valid fields */
 	guint fields_mask;
 };
diff --git a/libdocument/ev-document.c b/libdocument/ev-document.c
index e1521b7..f724d0a 100644
--- a/libdocument/ev-document.c
+++ b/libdocument/ev-document.c
@@ -289,6 +289,10 @@ ev_document_info_copy (EvDocumentInfo *info)
 	copy->n_pages = info->n_pages;
 	copy->fields_mask = info->fields_mask;
 
+	copy->license.text = info->license.text;
+	copy->license.uri = info->license.uri;
+	copy->license.web_statement = info->license.web_statement;
+
 	return copy;
 }
 
@@ -307,6 +311,10 @@ ev_document_info_free (EvDocumentInfo *info)
 	g_free (info->producer);
 	g_free (info->linearized);
 	g_free (info->security);
+
+	g_free (info->license.text);
+	g_free (info->license.uri);
+	g_free (info->license.web_statement);
 	
 	g_free (info);
 }
diff --git a/properties/Makefile.am b/properties/Makefile.am
index 0d2bf0e..4a64fac 100644
--- a/properties/Makefile.am
+++ b/properties/Makefile.am
@@ -12,7 +12,9 @@ noinst_LTLIBRARIES = libevproperties.la
 
 libevproperties_la_SOURCES=			\
 	ev-properties-view.c			\
-	ev-properties-view.h
+	ev-properties-view.h			\
+	ev-properties-license-view.c		\
+	ev-properties-license-view.h
 
 if ENABLE_NAUTILUS
 
diff --git a/properties/ev-properties-license-view.c b/properties/ev-properties-license-view.c
new file mode 100644
index 0000000..df83077
--- /dev/null
+++ b/properties/ev-properties-license-view.c
@@ -0,0 +1,216 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */
+/* this file is part of evince, a gnome document viewer
+ *
+ *  Copyright (C) 2005 Red Hat, Inc
+ *  Copyright (C) 2009 Juanjo Marín <juanj.marin@juntadeandalucia.es>
+ *  
+ *
+ * Evince is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Evince is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <sys/time.h>
+#include <time.h>
+
+#ifdef HAVE__NL_MEASUREMENT_MEASUREMENT
+#include <langinfo.h>
+#endif
+
+#include <glib/gi18n-lib.h>
+#include <gtk/gtk.h>
+
+#include "ev-properties-view.h"
+#include "ev-properties-license-view.h"
+
+typedef enum {
+	LICENSE_PROPERTY,
+	LICENSE_URI_PROPERTY,
+	LICENSE_WEB_STATEMENT_PROPERTY,
+} PropertyLicense;
+
+typedef struct {
+	PropertyLicense property;
+	const char *label;
+} PropertyLicenseInfo;
+
+static const PropertyLicenseInfo properties_license_info[] = {
+	{ LICENSE_PROPERTY,       N_("Usage terms:") },
+	{ LICENSE_URI_PROPERTY,   N_("License location:") },
+	{ LICENSE_WEB_STATEMENT_PROPERTY,
+	                          N_("Web statement:") }
+};
+
+struct _EvPropertiesLicenseView {
+	GtkVBox base_instance;
+
+	GtkWidget *table;
+};
+
+struct _EvPropertiesLicenseViewClass {
+	GtkVBoxClass base_class;
+};
+
+G_DEFINE_TYPE (EvPropertiesLicenseView, ev_properties_license_view, GTK_TYPE_VBOX)
+
+static void
+set_property (GtkTable    *table,
+	      PropertyLicense     property,
+	      const gchar *text,
+	      gint        *row)
+{
+	GtkWidget *label;
+	gchar     *markup;
+	gchar     *valid_text;
+	char* 	  check_uri;
+
+	label = gtk_label_new (NULL);
+	g_object_set (G_OBJECT (label), "xalign", 0.0, NULL);
+	markup = g_strdup_printf ("<b>%s</b>", _(properties_license_info[property].label));
+	gtk_label_set_markup (GTK_LABEL (label), markup);
+	g_free (markup);
+	
+	gtk_table_attach (table, label, 0, 1, *row, *row + 1,
+			  GTK_FILL, GTK_FILL, 0, 0);
+	gtk_widget_show (label);
+
+	if (property != LICENSE_PROPERTY) {
+		label = gtk_label_new (NULL);
+		g_object_set (G_OBJECT (label),
+			      "xalign", 0.0,
+			      "width_chars", 25,
+			      "selectable", TRUE,
+			      "ellipsize", PANGO_ELLIPSIZE_END,
+			      NULL);
+	
+
+		if (text == NULL || text[0] == '\000') {
+			markup = g_markup_printf_escaped ("<i>%s</i>", _("None"));
+			gtk_label_set_markup (GTK_LABEL (label), markup);
+			g_free (markup);
+		} else {
+			valid_text = ev_properties_make_valid_utf8 (text ? text : "");
+#if GTK_CHECK_VERSION (2, 17, 0)
+			check_uri =  g_uri_parse_scheme (valid_text);
+			if (check_uri) {
+				markup = g_markup_printf_escaped ("<a href=\"%s\">%s</a>",
+								  valid_text, valid_text);
+				gtk_label_set_markup (GTK_LABEL (label), markup);
+				g_free (markup);
+				g_free (check_uri);
+			} else
+#endif
+				gtk_label_set_text (GTK_LABEL (label), valid_text);
+			g_free (valid_text);
+		}
+
+		gtk_table_attach (table, label, 0, 1, *row + 1, *row + 2,
+			  GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0);
+		gtk_widget_show (label);
+		*row += 2;
+	} else {
+		GtkWidget *scrolled_win, *textview;
+		GtkTextBuffer *buffer;
+		textview = gtk_text_view_new ();
+		gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (textview), GTK_WRAP_WORD);
+		gtk_text_view_set_left_margin (textview, 8);
+		gtk_text_view_set_right_margin (textview, 8);
+		buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview));
+		valid_text = ev_properties_make_valid_utf8 (text ? text : "");
+		gtk_text_buffer_set_text (buffer, valid_text, -1);
+		scrolled_win = gtk_scrolled_window_new (NULL, NULL);
+		gtk_container_add (GTK_CONTAINER (scrolled_win), textview);
+		gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
+						GTK_POLICY_AUTOMATIC, 
+						GTK_POLICY_ALWAYS);
+		gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_win),
+						     GTK_SHADOW_IN);
+
+		gtk_table_attach (table, scrolled_win, 0, 1, *row + 1, *row + 2,
+				  GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0);
+		gtk_widget_show_all (scrolled_win);
+		g_free (valid_text);
+		*row += 2;
+	}
+	
+}
+
+static void
+ev_properties_license_view_dispose (GObject *object)
+{
+	EvPropertiesLicenseView *properties = EV_PROPERTIES_LICENSE_VIEW (object);
+	
+	G_OBJECT_CLASS (ev_properties_license_view_parent_class)->dispose (object);
+}
+
+static void
+ev_properties_license_view_class_init (EvPropertiesLicenseViewClass *properties_license_class)
+{
+	GObjectClass *g_object_class = G_OBJECT_CLASS (properties_license_class);
+
+	g_object_class->dispose = ev_properties_license_view_dispose;
+}
+
+void
+ev_properties_license_view_set_info (EvPropertiesLicenseView *properties, const EvDocumentInfo *info)
+{
+	GtkWidget *table;
+	gint       row = 0;
+
+	table = properties->table;
+
+	if (info->fields_mask & EV_DOCUMENT_INFO_LICENSE && info->license.text) {
+		set_property (GTK_TABLE (table), LICENSE_PROPERTY, 
+		info->license.text, &row);
+	}
+	if (info->fields_mask & EV_DOCUMENT_INFO_LICENSE && info->license.uri) {
+		set_property (GTK_TABLE (table), LICENSE_URI_PROPERTY, 
+		info->license.uri, &row);
+	}
+	if (info->fields_mask & EV_DOCUMENT_INFO_LICENSE && info->license.web_statement) {
+		set_property (GTK_TABLE (table), LICENSE_WEB_STATEMENT_PROPERTY,
+		info->license.web_statement, &row);
+
+	}
+}
+
+static void
+ev_properties_license_view_init (EvPropertiesLicenseView *properties)
+{
+	properties->table = gtk_table_new (6, 1, FALSE);
+	gtk_table_set_col_spacings (GTK_TABLE (properties->table), 12);
+	gtk_table_set_row_spacings (GTK_TABLE (properties->table), 6);
+	gtk_container_set_border_width (GTK_CONTAINER (properties->table), 12);
+	gtk_box_pack_start (GTK_BOX (properties), properties->table, 
+			    TRUE, TRUE, 0);
+	gtk_widget_show (properties->table);
+}
+
+void
+ev_properties_license_view_register_type (GTypeModule *module)
+{
+	ev_properties_license_view_get_type ();
+}
+
+GtkWidget *
+ev_properties_license_view_new (void)
+{
+	EvPropertiesLicenseView *properties_license;
+
+	properties_license = g_object_new (EV_TYPE_PROPERTIES_LICENSE, NULL);
+
+	return GTK_WIDGET (properties_license);
+}
diff --git a/properties/ev-properties-license-view.h b/properties/ev-properties-license-view.h
new file mode 100644
index 0000000..e3449e3
--- /dev/null
+++ b/properties/ev-properties-license-view.h
@@ -0,0 +1,51 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */
+/* this file is part of evince, a gnome document viewer
+ *
+ *  Copyright (C) 2005 Red Hat, Inc
+ *  Copyright (C) 2009 Juanjo Marín <juanj.marin@juntadeandalucia.es>
+ *
+ * Evince is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Evince is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __EV_PROPERTIES_LICENSE_VIEW_H__
+#define __EV_PROPERTIES_LICENSE_VIEW_H__
+
+#include <gtk/gtk.h>
+
+#include <evince-document.h>
+
+G_BEGIN_DECLS
+
+typedef struct _EvPropertiesLicenseView EvPropertiesLicenseView;
+typedef struct _EvPropertiesLicenseViewClass EvPropertiesLicenseViewClass;
+typedef struct _EvPropertiesLicenseViewPrivate EvPropertiesLicenseViewPrivate;
+
+#define EV_TYPE_PROPERTIES_LICENSE			(ev_properties_license_view_get_type())
+#define EV_PROPERTIES_LICENSE_VIEW(object)		(G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_PROPERTIES_LICENSE, EvPropertiesLicenseView))
+#define EV_PROPERTIES_LICENSE_VIEW_CLASS(klass)		(G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_PROPERTIES_LICENSE, EvPropertiesLicenseViewClass))
+#define EV_IS_PROPERTIES_LICENSE_VIEW(object)		(G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_PROPERTIES_LICENSE))
+#define EV_IS_PROPERTIES_LICENSE_VIEW_CLASS(klass)   	(G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_PROPERTIES_LICENSE))
+#define EV_PROPERTIES_LICENSE_VIEW_GET_CLASS(object) 	(G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_PROPERTIES_LICENSE, EvPropertiesLicenseViewClass))
+
+GType		ev_properties_license_view_get_type		(void);
+void		ev_properties_license_view_register_type	(GTypeModule *module);
+
+GtkWidget      *ev_properties_license_view_new			(void);
+void		ev_properties_license_view_set_info		(EvPropertiesLicenseView     *properties_license,
+							 const EvDocumentInfo *info);
+
+G_END_DECLS
+
+#endif /* __EV_PROPERTIES_LICENSE_VIEW_H__ */
diff --git a/properties/ev-properties-view.c b/properties/ev-properties-view.c
index 9a9d13c..929a0da 100644
--- a/properties/ev-properties-view.c
+++ b/properties/ev-properties-view.c
@@ -132,8 +132,8 @@ ev_properties_view_format_date (GTime utime)
 /* This is cut out of gconvert.c from glib (and mildly modified).  Not all
    backends give valid UTF-8 for properties, so we make sure that is.
  */
-static gchar *
-make_valid_utf8 (const gchar *name)
+gchar *
+ev_properties_make_valid_utf8 (const gchar *name)
 {
   GString *string;
   const gchar *remainder, *invalid;
@@ -203,7 +203,7 @@ set_property (GtkTable    *table,
 		gtk_label_set_markup (GTK_LABEL (label), markup);
 		g_free (markup);
 	} else {
-		valid_text = make_valid_utf8 (text ? text : "");
+		valid_text = ev_properties_make_valid_utf8 (text ? text : "");
 		gtk_label_set_text (GTK_LABEL (label), valid_text);
 		g_free (valid_text);
 	}
diff --git a/properties/ev-properties-view.h b/properties/ev-properties-view.h
index 65a237b..918dfcb 100644
--- a/properties/ev-properties-view.h
+++ b/properties/ev-properties-view.h
@@ -38,6 +38,7 @@ typedef struct _EvPropertiesViewPrivate EvPropertiesViewPrivate;
 #define EV_IS_PROPERTIES_VIEW_CLASS(klass)   	(G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_PROPERTIES))
 #define EV_PROPERTIES_VIEW_GET_CLASS(object) 	(G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_PROPERTIES, EvPropertiesViewClass))
 
+gchar	       *ev_properties_make_valid_utf8 		(const gchar *name);
 GType		ev_properties_view_get_type		(void);
 void		ev_properties_view_register_type	(GTypeModule *module);
 
diff --git a/shell/ev-properties-dialog.c b/shell/ev-properties-dialog.c
index f48b967..92979ce 100644
--- a/shell/ev-properties-dialog.c
+++ b/shell/ev-properties-dialog.c
@@ -30,6 +30,7 @@
 #include "ev-properties-dialog.h"
 #include "ev-properties-fonts.h"
 #include "ev-properties-view.h"
+#include "ev-properties-license-view.h"
 
 struct _EvPropertiesDialog {
 	GtkDialog base_instance;
@@ -38,6 +39,7 @@ struct _EvPropertiesDialog {
 	GtkWidget *notebook;
 	GtkWidget *general_page;
 	GtkWidget *fonts_page;
+	GtkWidget *license_page;
 };
 
 struct _EvPropertiesDialogClass {
@@ -108,6 +110,18 @@ ev_properties_dialog_set_document (EvPropertiesDialog *properties,
 		ev_properties_fonts_set_document
 			(EV_PROPERTIES_FONTS (properties->fonts_page), document);
 	}
+	if (properties->license_page == NULL && (info->license.text != NULL ||
+		info->license.uri != NULL || info->license.web_statement != NULL)) {
+		label = gtk_label_new (_("License"));
+		properties->license_page = ev_properties_license_view_new ();
+		gtk_notebook_append_page (GTK_NOTEBOOK (properties->notebook),
+					  properties->license_page, label);
+		gtk_widget_show (properties->license_page);
+		ev_properties_license_view_set_info (
+			   EV_PROPERTIES_LICENSE_VIEW (properties->license_page),
+			   info);
+	}
+	
 }
 
 GtkWidget *
