diff --git a/configure.ac b/configure.ac
index 3450bd2824..5d90452546 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2041,6 +2041,7 @@ ext/zbar/Makefile
po/Makefile.in
docs/Makefile
docs/plugins/Makefile
+docs/libs/Makefile
docs/version.entities
pkgconfig/Makefile
pkgconfig/gstreamer-plugins-bad.pc
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 7af47d43f1..a99c90f362 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -10,8 +10,8 @@ else
GTK_DOC_DIRS =
endif
-SUBDIRS = $(GTK_DOC_DIRS)
-DIST_SUBDIRS = plugins
+SUBDIRS = libs $(GTK_DOC_DIRS)
+DIST_SUBDIRS = libs plugins
EXTRA_DIST = \
random/ChangeLog-0.8 \
diff --git a/docs/libs/Makefile.am b/docs/libs/Makefile.am
new file mode 100644
index 0000000000..e8e43a8c20
--- /dev/null
+++ b/docs/libs/Makefile.am
@@ -0,0 +1,97 @@
+## Process this file with automake to produce Makefile.in
+
+# FIXME: fix the docs then remove this variable
+DOCS_ARE_INCOMPLETE_PLEASE_FIXME=yespleasedo
+
+# The name of the module, e.g. 'glib'.
+#DOC_MODULE=gst-plugins-libs-@GST_MAJORMINOR@
+DOC_MODULE=gst-plugins-bad-libs
+
+# for upload-doc.mak
+DOC=gst-plugins-bad-libs
+FORMATS=html
+html: html-build.stamp
+include $(top_srcdir)/common/upload-doc.mak
+
+# generated basefiles
+#basefiles = \
+## $(DOC_MODULE).types \
+# $(DOC_MODULE)-sections.txt \
+# $(DOC_MODULE)-docs.sgml
+
+# ugly hack to make -unused.sgml work
+#unused-build.stamp:
+# BUILDDIR=`pwd` && \
+# cd $(srcdir)/tmpl && \
+# ln -sf gstreamer-libs-unused.sgml \
+# $$BUILDDIR/tmpl/gstreamer-libs-@GST_MAJORMINOR@-unused.sgml
+# touch unused-build.stamp
+
+# these rules are added to create parallel docs using GST_MAJORMINOR
+#$(basefiles): gstreamer-libs-@GST_MAJORMINOR@%: gstreamer-libs%
+# cp $< $@
+
+#CLEANFILES = $(basefiles)
+
+# The top-level SGML file. Change it if you want.
+DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
+
+# The directory containing the source code. Relative to $(top_srcdir).
+# gtk-doc will search all .c & .h files beneath here for inline comments
+# documenting functions and macros.
+DOC_SOURCE_DIR=$(top_srcdir)/gst-libs/gst
+DOC_BUILD_DIR=$(top_builddir)/gst-libs/gst
+
+# Extra options to supply to gtkdoc-scan.
+SCAN_OPTIONS=--deprecated-guards="GST_DISABLE_DEPRECATED"
+
+# FIXME :
+# there's something wrong with gstreamer-sections.txt not being in the dist
+# maybe it doesn't resolve; we're adding it below for now
+#EXTRA_DIST = gstreamer.types.in gstreamer.hierarchy $(DOC_MODULE)-sections.txt gstreamer-sections.txt $(DOC_MAIN_SGML_FILE)
+
+# Extra options to supply to gtkdoc-mkdb.
+MKDB_OPTIONS=--sgml-mode --output-format=xml
+
+# Extra options to supply to gtkdoc-fixref.
+FIXXREF_OPTIONS=--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html \
+ --extra-dir=$(GST_PREFIX)/share/gtk-doc/html
+
+# Used for dependencies.
+HFILE_GLOB=$(DOC_SOURCE_DIR)/*/*.h
+CFILE_GLOB=$(DOC_SOURCE_DIR)/*/*.c
+
+# this is a wingo addition
+# thomasvs: another nice wingo addition would be an explanation on why
+# this is useful ;)
+
+SCANOBJ_DEPS = \
+ $(top_builddir)/gst-libs/gst/codecparsers/libgstcodecparsers-@GST_MAJORMINOR@.la
+
+# Header files to ignore when scanning.
+IGNORE_HFILES =
+
+# Images to copy into HTML directory.
+HTML_IMAGES =
+
+# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
+content_files = compiling.sgml
+
+# Other files to distribute.
+extra_files =
+
+# CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib
+# contains GtkObjects/GObjects and you want to document signals and properties.
+GTKDOC_CFLAGS = $(GST_PLUGINS_BAD_CFLAGS) $(GST_BAD_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS)
+GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS) $(GST_BAD_LIBS)
+
+GTKDOC_CC=$(LIBTOOL) --tag=CC --mode=compile $(CC)
+GTKDOC_LD=$(LIBTOOL) --tag=CC --mode=link $(CC)
+
+# If you need to override some of the declarations, place them in this file
+# and uncomment this line.
+#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
+DOC_OVERRIDES =
+
+include $(top_srcdir)/common/gtk-doc.mak
+
diff --git a/docs/libs/compiling.sgml b/docs/libs/compiling.sgml
new file mode 100644
index 0000000000..949209a068
--- /dev/null
+++ b/docs/libs/compiling.sgml
@@ -0,0 +1,48 @@
+
+
+%version-entities;
+]>
+
+
+Compiling
+3
+GStreamer-Bad Library
+
+
+
+Compiling against the bad plugins libraries
+
+How to compile against the bad plugins libraries
+
+
+
+
+Compiling against the bad plugins libraries
+
+
+To compile against these libraries, you need to tell the compiler where to
+find the header files and libraries. This is done with the
+pkg-config utility.
+
+
+The following interactive shell session demonstrates how
+pkg-config is used:
+
+$ pkg-config --cflags gstreamer-plugins-bad-&GST_MAJORMINOR;
+-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -pthread -I/usr/include/gstreamer-&GST_MAJORMINOR; -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libxml2
+$ pkg-config --libs gstreamer-plugins-bad-&GST_MAJORMINOR;
+-Wl,--export-dynamic -pthread -lgstreamer-&GST_MAJORMINOR; -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lxml2 -lpthread -lz -lm -lglib-2.0
+
+
+
+
+Note that, because of the number of libraries provided in this package,
+the pkg-config information does not add -l flags itself
+to choose the libraries to link to. You must add these yourself to select
+which of the libraries you want to use.
+
+
+
+
diff --git a/docs/libs/gst-plugins-bad-libs-docs.sgml b/docs/libs/gst-plugins-bad-libs-docs.sgml
new file mode 100644
index 0000000000..49f0402bc9
--- /dev/null
+++ b/docs/libs/gst-plugins-bad-libs-docs.sgml
@@ -0,0 +1,41 @@
+
+
+%version-entities;
+]>
+
+
+ GStreamer Bad Plugins &GST_MAJORMINOR; Library Reference Manual
+
+ for GStreamer Bad Library &GST_MAJORMINOR; (&GST_VERSION;)
+ http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad-libs/html/.
+
+
+
+
+ GStreamer Bad Plugins Libraries
+
+ This manual describes the libraries provided by the GStreamer Bad Plugins
+ package.
+
+
+
+
+
+ Object Hierarchy
+
+
+
+
+ Index
+
+
+
+ Index of deprecated API
+
+
+
+
+
+
diff --git a/docs/libs/gst-plugins-bad-libs-overrides.txt b/docs/libs/gst-plugins-bad-libs-overrides.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/docs/libs/gst-plugins-bad-libs-sections.txt b/docs/libs/gst-plugins-bad-libs-sections.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/docs/libs/gst-plugins-bad-libs.types b/docs/libs/gst-plugins-bad-libs.types
new file mode 100644
index 0000000000..9f4950e70d
--- /dev/null
+++ b/docs/libs/gst-plugins-bad-libs.types
@@ -0,0 +1 @@
+#include