diff --git a/Makefile.am b/Makefile.am
index 44e2c3d..7040e41 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -20,4 +20,4 @@ DISTCLEANFILES = intltool-extract \
                  intltool-update \
                  gnome-doc-utils.make
 
-DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper --enable-gtk-doc
+DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper --enable-gtk-doc --enable-introspection
diff --git a/configure.ac b/configure.ac
index 0277a5e..2c316f9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -119,6 +119,12 @@ dnl ================================================================
 GTK_DOC_CHECK(1.9)
 
 dnl ================================================================
+dnl Check for introspection
+dnl ================================================================
+GOBJECT_INTROSPECTION_CHECK([0.6.7])
+
+
+dnl ================================================================
 dnl Check for gtk+
 dnl ================================================================
 PKG_CHECK_MODULES(GTK, [gtk+-3.0 libxml-2.0 >= 2.4.0])
diff --git a/gladeui/Makefile.am b/gladeui/Makefile.am
index 3db8f91..eee7296 100644
--- a/gladeui/Makefile.am
+++ b/gladeui/Makefile.am
@@ -157,5 +157,32 @@ glade-marshallers.c: glade-marshallers.list $(GLIB_GENMARSHAL)
 	&& mv glade-marshallers-c.tmp glade-marshallers.c \
 	|| ( rm -f glade-marshallers-c.tmp && exit 1 )
 
-
 CLEANFILES = $(BUILT_SOURCES) gladeui.def
+
+#
+# Introspection generation
+#
+
+-include $(INTROSPECTION_MAKEFILE)
+INTROSPECTION_GIRS =
+INTROSPECTION_SCANNER_ARGS = --add-include-path=$(srcdir) --strip-prefix=Glade --pkg=gtk+-2.0 -I../
+INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir)
+
+if HAVE_INTROSPECTION
+introspection_sources = $(libgladeui_1_la_SOURCES) $(libgladeuiinclude_HEADERS)
+
+Gladeui-1.0.gir: libgladeui-1.la
+Gladeui_1_0_gir_INCLUDES = GObject-2.0 Gtk-2.0
+Gladeui_1_0_gir_CFLAGS = $(INCLUDES)
+Gladeui_1_0_gir_LIBS = libgladeui-1.la
+Gladeui_1_0_gir_FILES = $(introspection_sources)
+INTROSPECTION_GIRS += Gladeui-1.0.gir
+
+girdir = $(datadir)/gir-1.0
+gir_DATA = $(INTROSPECTION_GIRS)
+
+typelibdir = $(libdir)/girepository-1.0
+typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
+
+CLEANFILES += $(gir_DATA) $(typelib_DATA)
+endif
diff --git a/gladeui/glade-app.c b/gladeui/glade-app.c
index 81259b9..c2fd992 100644
--- a/gladeui/glade-app.c
+++ b/gladeui/glade-app.c
@@ -121,9 +121,9 @@ glade_pointer_mode_get_type (void)
 	{
 		static const GEnumValue values[] = 
 		{
-			{ GLADE_POINTER_SELECT,      "select",      "Select widgets" },
-			{ GLADE_POINTER_ADD_WIDGET,  "add",         "Add widgets" },
-			{ GLADE_POINTER_DRAG_RESIZE, "drag-resize", "Drag and resize widgets" },
+			{ GLADE_POINTER_SELECT,      "select",      "Select-widgets" },
+			{ GLADE_POINTER_ADD_WIDGET,  "add",         "Add-widgets" },
+			{ GLADE_POINTER_DRAG_RESIZE, "drag-resize", "Drag-and-resize-widgets" },
 			{ 0, NULL, NULL }
 		};
 		etype = g_enum_register_static ("GladePointerMode", 
@@ -759,7 +759,11 @@ glade_app_get_catalog_version (const gchar *name, gint *major, gint *minor)
 	
 	return TRUE;
 }
-
+/**
+ * glade_app_get_catalogs:
+ *
+ * Return value: (element-type GladeCatalog): catalogs
+ */
 GList *
 glade_app_get_catalogs (void)
 {
@@ -818,7 +822,11 @@ glade_app_check_get_project (void)
 		return glade_app_get_project ();
 	return NULL;
 }
-
+/**
+ * glade_app_get_projects:
+ *
+ * Return value: (element-type GladeProject): projects
+ */
 GList *
 glade_app_get_projects (void)
 {
diff --git a/gladeui/glade-command.c b/gladeui/glade-command.c
index ab4ef03..bcbc263 100644
--- a/gladeui/glade-command.c
+++ b/gladeui/glade-command.c
@@ -623,7 +623,11 @@ glade_command_set_property_description (GladeCommandSetProperty *me,
 	return description;
 }
 
-
+/**
+ * glade_command_set_properties_list:
+ *
+ * @props (element-type GladeProperty): List of #GladeProperty
+ */
 void
 glade_command_set_properties_list (GladeProject *project, GList *props)
 {
@@ -933,7 +937,12 @@ glade_command_placeholder_connect (CommandData *cdata,
 		 G_CALLBACK (glade_command_placeholder_destroyed), cdata);
 }
 
-
+/**
+ * get_all_parentless_reffed_widgetst:
+ *
+ * @props (element-type GladeWidget) : List of #GladeWidget
+ * @return (element-type GladeWidget) : List of #GladeWidget
+ */
 static GList *
 get_all_parentless_reffed_widgets (GList *reffed, GladeWidget *widget)
 {
@@ -961,7 +970,7 @@ get_all_parentless_reffed_widgets (GList *reffed, GladeWidget *widget)
 
 /**
  * glade_command_add:
- * @widgets: a #Glist
+ * @widgets (element-type GladeWidget): a #Glist
  * @parent: a #GladeWidget
  * @placeholder: a #GladePlaceholder
  * @pasting: whether we are pasting an existing widget or creating a new one.
@@ -1132,7 +1141,7 @@ glade_command_remove_locked (GladeWidget *widget, GList *reffed)
 
 /**
  * glade_command_remove:
- * @widgets: a #GList of #GladeWidgets
+ * @widgets (element-type GladeWidget): a #GList of #GladeWidgets
  * @return_placeholders: whether or not to return a list of placehodlers
  *
  * Performs a remove command on all widgets in @widgets from @parent.
@@ -1594,7 +1603,7 @@ glade_command_clipboard_add(GList *widgets)
 
 /**
  * glade_command_clipboard_remove:
- * @widgets: a #GList
+ * @widgets (element-type GladeWidget): a #GList
  *
  * Performs a remove command on all widgets in @widgets from the clipboard.
  */
@@ -1707,8 +1716,8 @@ glade_command_clipboard_add_remove_collapse (GladeCommand *this_cmd, GladeComman
 /**
  * glade_command_create:
  * @adaptor:		A #GladeWidgetAdaptor
- * @parent:             the parent #GladeWidget to add the new widget to.
- * @placeholder:	the placeholder which will be substituted by the widget
+ * @parent (allow-none):             the parent #GladeWidget to add the new widget to.
+ * @placeholder (allow-none):	the placeholder which will be substituted by the widget
  * @project:            the project his widget belongs to.
  *
  * Creates a new widget using @adaptor and put in place of the @placeholder
@@ -1747,7 +1756,7 @@ glade_command_create(GladeWidgetAdaptor *adaptor, GladeWidget *parent, GladePlac
 
 /**
  * glade_command_delete:
- * @widgets: a #GList of #GladeWidgets
+ * @widgets (element-type GladeWidget): a #GList of #GladeWidgets
  *
  * Performs a delete command on the list of widgets.
  */
@@ -1766,7 +1775,7 @@ glade_command_delete(GList *widgets)
 
 /**
  * glade_command_cut:
- * @widgets: a #GList of #GladeWidgets
+ * @widgets (element-type GladeWidget): a #GList of #GladeWidgets
  *
  * Removes the list of widgets and adds them to the clipboard.
  */
@@ -1790,7 +1799,7 @@ glade_command_cut(GList *widgets)
 
 /**
  * glade_command_copy:
- * @widgets: a #GList of #GladeWidgets
+ * @widgets (element-type GladeWidget): a #GList of #GladeWidgets
  *
  * Copies the list of widgets and adds them to the clipboard.
  */
@@ -1878,9 +1887,9 @@ glade_command_break_references (GladeProject *project, GList *widgets)
 
 /**
  * glade_command_paste:
- * @widgets: a #GList of #GladeWidget
- * @parent: a #GladeWidget
- * @placeholder: a #GladePlaceholder
+ * @widgets (element-type GladeWidget): a #GList of #GladeWidget
+ * @parent (allow-none): a #GladeWidget
+ * @placeholder (allow-none): a #GladePlaceholder
  *
  * Performs a paste command on all widgets in @widgets to @parent, possibly
  * replacing @placeholder (note toplevels dont need a parent; the active project
@@ -1927,9 +1936,9 @@ glade_command_paste(GList *widgets, GladeWidget *parent, GladePlaceholder *place
 
 /**
  * glade_command_dnd:
- * @widgets: a #GList of #GladeWidget
- * @parent: a #GladeWidget
- * @placeholder: a #GladePlaceholder
+ * @widgets (element-type GladeWidget): a #GList of #GladeWidget
+ * @parent (allow-none): a #GladeWidget
+ * @placeholder (allow-none): a #GladePlaceholder
  *
  * Performs a drag-n-drop command, i.e. removes the list of widgets and adds them 
  * to the new parent, possibly replacing @placeholder (note toplevels dont need a 
diff --git a/gladeui/glade-project.c b/gladeui/glade-project.c
index dd7d162..57cd882 100644
--- a/gladeui/glade-project.c
+++ b/gladeui/glade-project.c
@@ -3160,8 +3160,7 @@ glade_project_selection_set (GladeProject *project,
  * glade_project_selection_get:
  * @project: a #GladeProject
  *
- * Returns: a #GList containing the #GtkWidget items currently selected in 
- *          @project
+ * Returns: a #GList containing the #GtkWidget items currently selected in @project
  */
 GList *
 glade_project_selection_get (GladeProject *project)
