diff -Nurp libgsf/gsf/gsf-meta-names.h ../gnome.to.send/libgsf/gsf/gsf-meta-names.h
--- libgsf/gsf/gsf-meta-names.h	2005-09-13 16:39:27.113324488 -0300
+++ ../gnome.to.send/libgsf/gsf/gsf-meta-names.h	2005-09-13 15:30:57.870024424 -0300
@@ -179,4 +179,14 @@
 /* (Unsigned Integer) Identifier representing the case-sensitiveness */
 #define GSF_META_NAME_CASE_SENSITIVE        "gsf:case-sensitivity"
 
+/* (String) Specifies the name of the person who
+ * created the document initially.
+ */
+#define GSF_META_NAME_INITIAL_CREATOR       "gsf:initial-creator"
+
+/* (String) Specifies the name of the last person
+ * who printed the document.
+ */
+#define GSF_META_NAME_PRINTED_BY	        "gsf:printed-by"
+
 #endif /* GSF_META_NAMES_H */
diff -Nurp libgsf/gsf/gsf-opendocument-impl.h ../gnome.to.send/libgsf/gsf/gsf-opendocument-impl.h
--- libgsf/gsf/gsf-opendocument-impl.h	1969-12-31 21:00:00.000000000 -0300
+++ ../gnome.to.send/libgsf/gsf/gsf-opendocument-impl.h	2005-09-13 15:28:36.745478616 -0300
@@ -0,0 +1,114 @@
+/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * gsf-opendocument-impl.h: common vars to handle OpenDocument files
+ *
+ * Author:  Luciano Wolf (luciano.wolf@indt.org.br)
+ *
+ * Copyright (C) 2005 INdT - Instituto Nokia de Tecnologia
+ * http://www.indt.org.br
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2.1 of the GNU Lesser General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program 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 Lesser General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
+ * USA
+ */
+
+#ifndef GSF_OPENDOCUMENT_IMPL_H
+#define GSF_OPENDOCUMENT_IMPL_H
+
+#include <gsf/gsf-libxml.h>
+#include <gsf/gsf-input.h>
+#include <gsf/gsf-infile.h>
+#include <gsf/gsf-infile-zip.h>
+#include <gsf/gsf-meta-names.h>
+#include <glib/gi18n.h>
+
+#include <string.h>
+#include <locale.h>
+
+G_BEGIN_DECLS
+
+enum {
+	OO_NS_OFFICE,
+	OO_NS_STYLE,
+	OO_NS_TEXT,
+	OO_NS_TABLE,
+	OO_NS_DRAW,
+	OO_NS_NUMBER,
+	OO_NS_CHART,
+	OO_NS_DR3D,
+	OO_NS_FORM,
+	OO_NS_SCRIPT,
+	OO_NS_CONFIG,
+	OO_NS_MATH,
+	OO_NS_FO,
+	OO_NS_DC,
+	OO_NS_META,
+	OO_NS_XLINK,
+	OO_NS_SVG,
+
+	/* new in 2.0 */
+	OO_NS_OOO,
+	OO_NS_OOOW,
+	OO_NS_OOOC,
+	OO_NS_DOM,
+	OO_NS_XFORMS,
+	OO_NS_XSD,
+	OO_NS_XSI
+};
+
+GsfXMLInNS ooo_ns[] = {
+	/* OOo 1.0.x & 1.1.x */
+	GSF_XML_IN_NS (OO_NS_OFFICE,	"http://openoffice.org/2000/office"),
+	GSF_XML_IN_NS (OO_NS_STYLE,	"http://openoffice.org/2000/style"),
+	GSF_XML_IN_NS (OO_NS_TEXT,	"http://openoffice.org/2000/text"),
+	GSF_XML_IN_NS (OO_NS_TABLE,	"http://openoffice.org/2000/table"),
+	GSF_XML_IN_NS (OO_NS_DRAW,	"http://openoffice.org/2000/drawing"),
+	GSF_XML_IN_NS (OO_NS_NUMBER,	"http://openoffice.org/2000/datastyle"),
+	GSF_XML_IN_NS (OO_NS_CHART,	"http://openoffice.org/2000/chart"),
+	GSF_XML_IN_NS (OO_NS_DR3D,	"http://openoffice.org/2000/dr3d"),
+	GSF_XML_IN_NS (OO_NS_FORM,	"http://openoffice.org/2000/form"),
+	GSF_XML_IN_NS (OO_NS_SCRIPT,	"http://openoffice.org/2000/script"),
+	GSF_XML_IN_NS (OO_NS_CONFIG,	"http://openoffice.org/2001/config"),
+	GSF_XML_IN_NS (OO_NS_MATH,	"http://www.w3.org/1998/Math/MathML"),	/* also in 2.0 */
+	GSF_XML_IN_NS (OO_NS_FO,	"http://www.w3.org/1999/XSL/Format"),
+	GSF_XML_IN_NS (OO_NS_XLINK,	"http://www.w3.org/1999/xlink"),	/* also in 2.0 */
+	GSF_XML_IN_NS (OO_NS_SVG,	"http://www.w3.org/2000/svg"),
+
+	/* OOo 1.9.x & 2.0.x */
+	GSF_XML_IN_NS (OO_NS_OFFICE,	"urn:oasis:names:tc:opendocument:xmlns:office:1.0"),
+	GSF_XML_IN_NS (OO_NS_STYLE,	"urn:oasis:names:tc:opendocument:xmlns:style:1.0"),
+	GSF_XML_IN_NS (OO_NS_TEXT,	"urn:oasis:names:tc:opendocument:xmlns:text:1.0"),
+	GSF_XML_IN_NS (OO_NS_TABLE,	"urn:oasis:names:tc:opendocument:xmlns:table:1.0"),
+	GSF_XML_IN_NS (OO_NS_DRAW,	"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"),
+	GSF_XML_IN_NS (OO_NS_FO,	"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"),
+	GSF_XML_IN_NS (OO_NS_META,	"urn:oasis:names:tc:opendocument:xmlns:meta:1.0"),
+	GSF_XML_IN_NS (OO_NS_NUMBER,	"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"),
+	GSF_XML_IN_NS (OO_NS_SVG,	"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"),
+	GSF_XML_IN_NS (OO_NS_CHART,	"urn:oasis:names:tc:opendocument:xmlns:chart:1.0"),
+	GSF_XML_IN_NS (OO_NS_DR3D,	"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"),
+	GSF_XML_IN_NS (OO_NS_FORM,	"urn:oasis:names:tc:opendocument:xmlns:form:1.0"),
+	GSF_XML_IN_NS (OO_NS_SCRIPT,	"urn:oasis:names:tc:opendocument:xmlns:script:1.0"),
+	GSF_XML_IN_NS (OO_NS_DC,	"http://purl.org/dc/elements/1.1/"),
+	GSF_XML_IN_NS (OO_NS_OOO,	"http://openoffice.org/2004/office"),
+	GSF_XML_IN_NS (OO_NS_OOOW,	"http://openoffice.org/2004/writer"),
+	GSF_XML_IN_NS (OO_NS_OOOC,	"http://openoffice.org/2004/calc"),
+	GSF_XML_IN_NS (OO_NS_DOM,	"http://www.w3.org/2001/xml-events"),
+	GSF_XML_IN_NS (OO_NS_XFORMS,	"http://www.w3.org/2002/xforms"),
+	GSF_XML_IN_NS (OO_NS_XSD,	"http://www.w3.org/2001/XMLSchema"),
+	GSF_XML_IN_NS (OO_NS_XSI,	"http://www.w3.org/2001/XMLSchema-instance"),
+	{ NULL }
+};
+
+G_END_DECLS
+
+#endif /* GSF_OPENDOCUMENT_IMPL_H */
diff -Nurp libgsf/gsf/gsf-opendocument-meta.c ../gnome.to.send/libgsf/gsf/gsf-opendocument-meta.c
--- libgsf/gsf/gsf-opendocument-meta.c	1969-12-31 21:00:00.000000000 -0300
+++ ../gnome.to.send/libgsf/gsf/gsf-opendocument-meta.c	2005-09-13 15:28:36.753477400 -0300
@@ -0,0 +1,193 @@
+/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * gsf-opendocument-meta.c: parser to meta.xml file
+ *
+ * Author:  Luciano Wolf (luciano.wolf@indt.org.br)
+ *
+ * Copyright (C) 2005 INdT - Instituto Nokia de Tecnologia
+ * http://www.indt.org.br
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2.1 of the GNU Lesser General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program 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 Lesser General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
+ * USA
+ */
+
+#include "gsf-opendocument-meta.h"
+#include <gsf/gsf-libxml.h>
+#include <signal.h>
+
+/* Generated based on:
+ * http://www.oasis-open.org/committees/download.php/12572/OpenDocument-v1.0-os.pdf */
+GsfXMLInNode opendocument_meta_dtd[] = {
+ GSF_XML_IN_NODE_FULL (START, START, -1, NULL, FALSE, FALSE, TRUE, NULL, NULL, 0),
+	GSF_XML_IN_NODE (START, META, OO_NS_OFFICE, "meta", FALSE, NULL, NULL),
+		/* OpenDocument TAGS */
+		GSF_XML_IN_NODE (META, META_GENERATOR, OO_NS_META, "generator", TRUE, NULL, &od_meta_generator),
+		GSF_XML_IN_NODE (META, META_KEYWORD, OO_NS_META, "keyword", TRUE, NULL, &od_meta_keyword),
+		GSF_XML_IN_NODE (META, META_INITIAL_CREATOR, OO_NS_META, "initial-creator", TRUE, NULL, &od_meta_initial_creator),
+		GSF_XML_IN_NODE (META, META_PRINTED_BY, OO_NS_META, "printed-by", TRUE, NULL, &od_meta_printed_by),
+		GSF_XML_IN_NODE (META, META_CREATION_DATE, OO_NS_META, "creation-date", TRUE, NULL, &od_meta_creation_date),
+		GSF_XML_IN_NODE (META, META_PRINT_DATE, OO_NS_META, "print-date", TRUE, NULL, &od_meta_print_date),
+
+		GSF_XML_IN_NODE (META, META_EDITING_CYCLES, OO_NS_META, "editing-cycles", TRUE, NULL, &od_meta_editing_cycles),
+		GSF_XML_IN_NODE (META, META_EDITING_DURATION, OO_NS_META, "editing-duration", TRUE, NULL, &od_meta_editing_duration),
+
+		GSF_XML_IN_NODE (META, DC_TITLE, OO_NS_DC, "title", TRUE, NULL, &od_dc_title),
+		GSF_XML_IN_NODE (META, DC_DESCRIPTION, OO_NS_DC, "description", TRUE, NULL, &od_dc_description),
+		GSF_XML_IN_NODE (META, DC_SUBJECT, OO_NS_DC, "subject", TRUE, NULL, &od_dc_subject),
+		GSF_XML_IN_NODE (META, DC_CREATOR, OO_NS_DC, "creator", TRUE, NULL, &od_dc_creator),
+		GSF_XML_IN_NODE (META, DC_DATE, OO_NS_DC, "date", TRUE, NULL, &od_dc_date),
+		GSF_XML_IN_NODE (META, DC_LANGUAGE, OO_NS_DC, "language", TRUE, NULL, &od_dc_language),
+	{ NULL }
+};
+
+static GsfXMLInDoc *opendocument_meta;
+GsfDocMetaData *meta_in;
+
+void load_opendocument_meta(void)
+{
+	opendocument_meta = gsf_xml_in_doc_new (opendocument_meta_dtd, ooo_ns);
+}
+
+void free_opendocument_meta(void)
+{
+	gsf_xml_in_doc_free (opendocument_meta);
+}
+
+static GValue *gval_fill(void *data_in, GType g_type)
+{
+	GValue *g_val_out;
+
+	g_val_out = g_new0 (GValue, 1);
+	g_value_init (g_val_out, g_type);
+	
+	switch (g_type)
+	{
+		case G_TYPE_BOOLEAN:
+			g_value_set_boolean (g_val_out, (gboolean)data_in);
+			break;
+		case G_TYPE_INT:
+			g_value_set_int (g_val_out, (gint)data_in);
+			break;
+		case G_TYPE_UINT:
+			g_value_set_uint (g_val_out, (guint)data_in);
+			break;
+		case G_TYPE_STRING:
+			g_value_set_string (g_val_out, (gchar *)data_in);
+			break;
+		default:
+			return NULL;
+	}
+	return g_val_out;
+}
+
+/* Read the meta.xml */
+GError *gsf_opendocument_metadata_read	  (GsfInput *in,
+					   GsfDocMetaData *meta)
+{
+	GsfXMLIn base;
+	meta_in = meta;
+
+	if (in != NULL)
+	{
+		base.doc = opendocument_meta;
+		gsf_xml_in_parse (&base, in);
+	}
+	else
+		return g_error_new (gsf_input_error_id (), 0, 
+							"Unable to read meta.xml file");
+	return NULL;
+}
+
+gboolean gsf_opendocument_metadata_write	  (GsfOutput *out,
+					   GsfDocMetaData const *meta_data,
+					   gboolean doc_not_component)
+{
+	return FALSE;
+/* TODO */
+}
+
+/* OpenDocument */
+void od_meta_generator (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_GENERATOR, gval_tmp);
+}
+void od_meta_keyword (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_KEYWORDS, gval_tmp);
+}
+void od_meta_initial_creator (GsfXMLIn *xin,
+						G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_INITIAL_CREATOR, gval_tmp);
+}
+void od_meta_printed_by (GsfXMLIn *xin,
+						G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_PRINTED_BY, gval_tmp);
+}
+void od_meta_creation_date (GsfXMLIn *xin,
+						G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_DATE_CREATED, gval_tmp);
+}
+void od_meta_print_date (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_LAST_PRINTED, gval_tmp);
+}
+void od_meta_editing_cycles (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_REVISION_COUNT, gval_tmp);
+}
+void od_meta_editing_duration (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_EDITING_DURATION, gval_tmp);
+}
+void od_dc_title (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_TITLE, gval_tmp);
+}
+void od_dc_description (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_DESCRIPTION, gval_tmp);
+}
+void od_dc_subject (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_SUBJECT, gval_tmp);
+}
+void od_dc_creator (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_CREATOR, gval_tmp);
+}
+void od_dc_date (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_DATE_MODIFIED, gval_tmp);
+}
+void od_dc_language (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob)
+{
+	GValue *gval_tmp = gval_fill(xin->content->str, G_TYPE_STRING);
+	gsf_doc_meta_data_insert (meta_in, GSF_META_NAME_LANGUAGE, gval_tmp);
+}
diff -Nurp libgsf/gsf/gsf-opendocument-meta.h ../gnome.to.send/libgsf/gsf/gsf-opendocument-meta.h
--- libgsf/gsf/gsf-opendocument-meta.h	1969-12-31 21:00:00.000000000 -0300
+++ ../gnome.to.send/libgsf/gsf/gsf-opendocument-meta.h	2005-09-13 15:28:36.754477248 -0300
@@ -0,0 +1,61 @@
+/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * gsf-opendocument-meta.h: tools to handle OpenDocument files
+ *
+ * Author:  Luciano Wolf (luciano.wolf@indt.org.br)
+ *
+ * Copyright (C) 2005 INdT - Instituto Nokia de Tecnologia
+ * http://www.indt.org.br
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2.1 of the GNU Lesser General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program 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 Lesser General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301
+ * USA
+ */
+
+#ifndef GSF_OPENDOCUMENT_META_H
+#define GSF_OPENDOCUMENT_META_H
+
+#include "gsf-opendocument-impl.h"
+
+G_BEGIN_DECLS
+
+GError	   *gsf_opendocument_metadata_read	  (GsfInput *in,
+					   GsfDocMetaData *meta);
+gboolean    gsf_opendocument_metadata_write	  (GsfOutput *out,
+					   GsfDocMetaData const *meta_data,
+					   gboolean doc_not_component);
+/* OpenDocument */
+void od_meta_generator (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_meta_keyword (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_meta_initial_creator (GsfXMLIn *xin,
+						G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_meta_printed_by (GsfXMLIn *xin,
+						G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_meta_creation_date (GsfXMLIn *xin,
+						G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_meta_print_date (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_meta_editing_cycles (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_meta_editing_duration (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_dc_title (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_dc_description (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_dc_subject (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_dc_creator (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_dc_date (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob);
+void od_dc_language (GsfXMLIn *xin, G_GNUC_UNUSED GsfXMLBlob *blob);
+
+void		load_opendocument_meta(void);
+void		free_opendocument_meta(void);
+
+G_END_DECLS
+
+#endif /* GSF_OPENDOCUMENT_META_H */
diff -Nurp libgsf/gsf/Makefile.am ../gnome.to.send/libgsf/gsf/Makefile.am
--- libgsf/gsf/Makefile.am	2005-09-13 16:39:15.884031600 -0300
+++ ../gnome.to.send/libgsf/gsf/Makefile.am	2005-09-13 15:30:09.428388672 -0300
@@ -28,6 +28,7 @@ libgsf_1_la_SOURCES =		\
 	gsf-docprop-vector.c	\
 	gsf-msole-impl.h	\
 	gsf-msole-utils.c	\
+	gsf-opendocument-meta.c	\
 	gsf-timestamp.c		\
 	gsf-zip-impl.h		\
 	gsf-zip-utils.c		\
@@ -79,6 +80,8 @@ libgsf_1_include_HEADERS = 	\
 	gsf-doc-meta-data.h	\
 	gsf-docprop-vector.h	\
 	gsf-msole-utils.h	\
+	gsf-opendocument-impl.h	\
+	gsf-opendocument-meta.h	\
 	gsf-timestamp.h		\
 	\
 	gsf-input.h		\
