diff --git a/.gitignore b/.gitignore
index 2e6cdaeda8..ed7aa78e92 100644
--- a/.gitignore
+++ b/.gitignore
@@ -114,6 +114,19 @@ valgrind-*.log
/docs/libnm-util/libnm-util.types
/docs/libnm-util/version.xml
+/docs/libnm/*.stamp
+/docs/libnm/html/
+/docs/libnm/tmpl/
+/docs/libnm/xml/
+/docs/libnm/libnm-*.txt
+/docs/libnm/libnm.args
+/docs/libnm/libnm.hierarchy
+/docs/libnm/libnm.interfaces
+/docs/libnm/libnm.prerequisites
+/docs/libnm/libnm.signals
+/docs/libnm/libnm.types
+/docs/libnm/version.xml
+
/docs/api/version.xml
/docs/api/settings-spec.html
/docs/api/settings-spec.xml
diff --git a/configure.ac b/configure.ac
index 9b0fc2ddca..a082c8e20c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -880,6 +880,8 @@ docs/libnm-glib/Makefile
docs/libnm-glib/version.xml
docs/libnm-util/Makefile
docs/libnm-util/version.xml
+docs/libnm/Makefile
+docs/libnm/version.xml
NetworkManager.pc
examples/Makefile
examples/shell/Makefile
diff --git a/docs/Makefile.am b/docs/Makefile.am
index fd2c82c832..5fdeff62b4 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -1,2 +1,2 @@
-SUBDIRS = libnm-glib libnm-util api
+SUBDIRS = libnm-glib libnm-util libnm api
diff --git a/docs/libnm/Makefile.am b/docs/libnm/Makefile.am
new file mode 100644
index 0000000000..9d745b14c2
--- /dev/null
+++ b/docs/libnm/Makefile.am
@@ -0,0 +1,84 @@
+## Process this file with automake to produce Makefile.in
+AUTOMAKE_OPTIONS = 1.6
+
+# The name of the module
+DOC_MODULE=libnm
+
+# The top-level SGML file.
+DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.xml
+
+# The directory containing the source code. Relative to $(srcdir).
+# gtk-doc will search all .c & .h files beneath here for inline comments
+# documenting functions and macros.
+DOC_SOURCE_DIR=$(top_srcdir)/libnm-core $(top_srcdir)/libnm
+
+# Extra options to supply to gtkdoc-scan.
+SCAN_OPTIONS=--rebuild-types --rebuild-sections
+
+# Extra options to supply to gtkdoc-scangobj.
+SCANGOBJ_OPTIONS=--type-init-func 'g_type_init();'
+
+# Extra options to supply to gtkdoc-mkdb.
+MKDB_OPTIONS=--sgml-mode --output-format=xml
+
+# Extra options to supply to gtkdoc-fixref.
+FIXXREF_OPTIONS=
+
+# Used for dependencies.
+HFILE_GLOB=$(top_srcdir)/libnm-core/*.h $(top_srcdir)/libnm/*.h
+CFILE_GLOB=$(top_srcdir)/libnm-core/*.c $(top_srcdir)/libnm/*.c
+
+# Header files to ignore when scanning.
+IGNORE_HFILES= \
+ crypto.h \
+ nm-dbus-helpers-private.h \
+ nm-device-private.h \
+ nm-object-cache.h \
+ nm-object-private.h \
+ nm-param-spec-dbus.h \
+ nm-remote-connection-private.h \
+ nm-secret-agent-glue.h \
+ nm-setting-private.h \
+ nm-types-private.h \
+ nm-utils-private.h \
+ nm-vpn-plugin-glue.h
+
+# Images to copy into HTML directory.
+HTML_IMAGES = libnm.png
+
+# Extra XML files that are included by $(DOC_MAIN_SGML_FILE).
+content_files = version.xml
+
+# Other files to distribute.
+extra_files = libnm.png
+
+
+# CFLAGS and LDFLAGS for compiling scan program. Only needed
+# if $(DOC_MODULE).types is non-empty.
+GTKDOC_CFLAGS = \
+ -I$(top_srcdir)/libnm-core \
+ -I$(top_builddir)/libnm-core \
+ -I$(top_srcdir)/libnm \
+ -I$(top_builddir)/libnm \
+ -DNM_VERSION_MAX_ALLOWED=NM_VERSION_NEXT_STABLE \
+ $(GLIB_CFLAGS) \
+ $(DBUS_CFLAGS)
+
+GTKDOC_LIBS = \
+ $(top_builddir)/libnm/libnm.la \
+ $(top_builddir)/libnm/libnm-vpn.la \
+ $(GLIB_LIBS)
+
+
+# include common portion ...
+include $(top_srcdir)/gtk-doc.make
+
+EXTRA_DIST += version.xml.in
+
+CLEANFILES += \
+ libnm-sections.txt \
+ libnm-overrides.txt \
+ html/* \
+ tmpl/* \
+ xml/*
+
diff --git a/docs/libnm/libnm-docs.xml b/docs/libnm/libnm-docs.xml
new file mode 100644
index 0000000000..64fbbc243b
--- /dev/null
+++ b/docs/libnm/libnm-docs.xml
@@ -0,0 +1,161 @@
+
+
+]>
+
+
+
+ libnm Reference Manual
+
+ for libnm &version;
+ The latest version of this documentation can be found on-line at
+ https://developer.gnome.org/libnm/1.0/.
+
+
+
+ 2012-2014
+ The NetworkManager Authors
+
+
+
+
+ Permission is granted to copy, distribute and/or modify this
+ document under the terms of the GNU Free
+ Documentation License, Version 1.1 or any later
+ version published by the Free Software Foundation with no
+ Invariant Sections, no Front-Cover Texts, and no Back-Cover
+ Texts. You may obtain a copy of the GNU Free
+ Documentation License from the Free Software
+ Foundation by visiting their Web site or by writing
+ to:
+
+
+ The Free Software Foundation, Inc.,
+ 51 Franklin Street - Fifth Floor,
+ Boston, MA02110-1301,
+ USA
+
+
+
+
+
+
+ Overview
+
+ libnm maps fairly closely to the actual D-Bus API that NetworkManager
+ provides, wrapping the remote D-Bus objects as native GObjects,
+ mapping D-Bus signals and properties to GObject signals and properties,
+ and providing helpful accessor and utility functions. However, unlike
+ the old libnm-util/libnm-glib API, the mapping to the D-Bus API is not
+ exact, and various inconveniences and historical anomolies of the D-Bus
+ API are papered over.
+
+
+ The following is a rough overview of the libnm object structure and
+ how to use the various parts of it:
+
+
+
+
+
+
+
+
+
+ Client Object API Reference
+
+
+
+
+
+
+
+ Connection and Setting API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Device and Runtime Configuration API Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Utility API Reference
+
+
+
+
+
+ VPN Plugin API Reference
+
+
+
+
+
+
+ Object Hierarchy
+
+
+
+ API Index
+
+
+
+
+
+
diff --git a/docs/libnm/libnm.png b/docs/libnm/libnm.png
new file mode 100644
index 0000000000..dc00072842
Binary files /dev/null and b/docs/libnm/libnm.png differ
diff --git a/docs/libnm/libnm.svg b/docs/libnm/libnm.svg
new file mode 100644
index 0000000000..a0d240fae6
--- /dev/null
+++ b/docs/libnm/libnm.svg
@@ -0,0 +1,893 @@
+
+
+
+
diff --git a/docs/libnm/version.xml.in b/docs/libnm/version.xml.in
new file mode 100644
index 0000000000..d78bda9342
--- /dev/null
+++ b/docs/libnm/version.xml.in
@@ -0,0 +1 @@
+@VERSION@