diff --git a/gst/autoconvert/Makefile.am b/gst/autoconvert/Makefile.am
index 28fc015..f2a73b0 100644
--- a/gst/autoconvert/Makefile.am
+++ b/gst/autoconvert/Makefile.am
@@ -1,9 +1,8 @@
 plugin_LTLIBRARIES = libgstautoconvert.la
 
-libgstautoconvert_la_SOURCES = gstautoconvert.c gstautoconvert.h
+libgstautoconvert_la_SOURCES = gstautoconvert.c gstautoconvert.h gstautocolorspace.c gstautocolorspace.h plugin.c
 
 libgstautoconvert_la_CFLAGS = $(GST_CFLAGS)
 libgstautoconvert_la_LIBADD = $(GST_LIBS)
 libgstautoconvert_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstautoconvert_la_LIBTOOLFLAGS = --tag=disable-static
-
diff --git a/gst/autoconvert/gstautocolorspace.c b/gst/autoconvert/gstautocolorspace.c
new file mode 100644
index 0000000..46490cf
--- /dev/null
+++ b/gst/autoconvert/gstautocolorspace.c
@@ -0,0 +1,111 @@
+/* GStreamer
+ * Copyright 2010 ST-Ericsson SA 
+ *  @author: Benjamin Gaignard <benjamin.gaignard@stericsson.com>
+ *  
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstautocolorspace.h"
+
+GST_DEBUG_CATEGORY (autocolorspace_debug);
+#define GST_CAT_DEFAULT (autocolorspace_debug)
+
+static gboolean
+gst_auto_color_space_element_filter (GstPluginFeature * feature,
+    GstAutoColorSpace * autocolorspace)
+{
+  const gchar *klass;
+
+  /* we only care about element factories */
+  if (G_UNLIKELY (!GST_IS_ELEMENT_FACTORY (feature)))
+    return FALSE;
+
+  klass = gst_element_factory_get_klass (GST_ELEMENT_FACTORY_CAST (feature));
+  /* only select color space converter */
+  if (g_strcmp0 (klass, "Filter/Converter/Video") == 0) {
+    GST_DEBUG_OBJECT (autocolorspace,
+        "gst_auto_color_space_element_filter found %s\n",
+        gst_plugin_feature_get_name (GST_PLUGIN_FEATURE_CAST (feature)));
+    return TRUE;
+  }
+  return FALSE;
+}
+
+
+static GList *
+gst_auto_color_space_create_factory_list (GstAutoColorSpace * autocolorspace)
+{
+  GList *result = NULL;
+
+  /* get the feature list using the filter */
+  result = gst_default_registry_feature_filter ((GstPluginFeatureFilter)
+      gst_auto_color_space_element_filter, FALSE, autocolorspace);
+
+  /* sort on rank and name */
+  result = g_list_sort (result, gst_plugin_feature_rank_compare_func);
+
+  return result;
+}
+
+GST_BOILERPLATE (GstAutoColorSpace, gst_auto_color_space, GstAutoConvert,
+    GST_TYPE_AUTO_CONVERT);
+
+static void
+gst_auto_color_space_base_init (gpointer klass)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+  gst_element_class_set_details_simple (element_class,
+      "Select color space convertor based on caps", "Generic/Bin",
+      "Selects the right color space convertor based on the caps",
+      "Benjamin Gaignard <benjamin.gaignard@stericsson.com>");
+}
+
+static void
+gst_auto_color_space_dispose (GObject * object)
+{
+  G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
+gst_auto_color_space_class_init (GstAutoColorSpaceClass * klass)
+{
+  GObjectClass *gobject_class = (GObjectClass *) klass;
+
+  gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_auto_color_space_dispose);
+
+  GST_DEBUG_CATEGORY_INIT (autocolorspace_debug, "autocolorspace", 0,
+      "Auto color space converter");
+}
+
+static void
+gst_auto_color_space_init (GstAutoColorSpace * autocolorspace,
+    GstAutoColorSpaceClass * klass)
+{
+  GList *factories_list;
+
+  factories_list = gst_auto_color_space_create_factory_list (autocolorspace);
+
+  GST_DEBUG_OBJECT (autocolorspace, "set factories list");
+  g_object_set (GST_ELEMENT (autocolorspace), "factories", factories_list,
+      NULL);
+  gst_plugin_feature_list_free (factories_list);
+
+}
diff --git a/gst/autoconvert/gstautocolorspace.h b/gst/autoconvert/gstautocolorspace.h
new file mode 100644
index 0000000..b52b928
--- /dev/null
+++ b/gst/autoconvert/gstautocolorspace.h
@@ -0,0 +1,54 @@
+/* GStreamer
+ * Copyright 2010 ST-Ericsson SA 
+ *  @author: Benjamin Gaignard <benjamin.gaignard@stericsson.com>
+ *  
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_AUTO_COLOR_SPACE_H__
+#define __GST_AUTO_COLOR_SPACE_H__
+
+#include <gst/gst.h>
+#include <gst/gstbin.h>
+#include "gstautoconvert.h"
+
+G_BEGIN_DECLS
+#define GST_TYPE_AUTO_COLOR_SPACE 	        	(gst_auto_color_space_get_type())
+#define GST_AUTO_COLOR_SPACE(obj)	            (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_AUTO_COLOR_SPACE,GstAutoColorSpace))
+#define GST_AUTO_COLOR_SPACE_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_AUTO_COLOR_SPACE,GstAutoColorSpaceClass))
+#define GST_IS_AUTO_COLOR_SPACE(obj)            (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_AUTO_COLOR_SPACE))
+#define GST_IS_AUTO_COLOR_SPACE_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_AUTO_COLOR_SPACE))
+typedef struct _GstAutoColorSpace GstAutoColorSpace;
+typedef struct _GstAutoColorSpaceClass GstAutoColorSpaceClass;
+
+struct _GstAutoColorSpace
+{
+  /*< private > */
+  GstAutoConvert bin;           /* we extend GstAutoConvert */
+
+  GstPad *sinkpad;
+  GstPad *srcpad;
+};
+
+struct _GstAutoColorSpaceClass
+{
+  GstAutoConvertClass parent_class;
+};
+
+GType gst_auto_color_space_get_type (void);
+
+G_END_DECLS
+#endif /* __GST_AUTO_COLOR_SPACE_H__ */
diff --git a/gst/autoconvert/gstautoconvert.c b/gst/autoconvert/gstautoconvert.c
index 3c254f6..5a7a2ee 100644
--- a/gst/autoconvert/gstautoconvert.c
+++ b/gst/autoconvert/gstautoconvert.c
@@ -1552,6 +1552,7 @@ gst_auto_convert_internal_src_query_type (GstPad * pad)
   return ret;
 }
 
+/*
 static gboolean
 gst_auto_convert_plugin_init (GstPlugin * plugin)
 {
@@ -1565,3 +1566,4 @@ GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
     "Selects convertor element based on caps",
     gst_auto_convert_plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME,
     GST_PACKAGE_ORIGIN)
+*/
diff --git a/gst/autoconvert/plugin.c b/gst/autoconvert/plugin.c
new file mode 100644
index 0000000..dd2ca03
--- /dev/null
+++ b/gst/autoconvert/plugin.c
@@ -0,0 +1,46 @@
+/* GStreamer
+ * Copyright 2010 ST-Ericsson SA 
+ *  @author: Benjamin Gaignard <benjamin.gaignard@stericsson.com>
+ *  
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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 GNU15788a0aad8eec7d5840a63a441ad051c7038ae7
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstautoconvert.h"
+#include "gstautocolorspace.h"
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+  gboolean ret;
+
+  ret = gst_element_register (plugin, "autoconvert",
+      GST_RANK_NONE, GST_TYPE_AUTO_CONVERT);
+
+  ret &= gst_element_register (plugin, "autocolorspace",
+      GST_RANK_NONE, GST_TYPE_AUTO_COLOR_SPACE);
+
+  return ret;
+}
+
+GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
+    GST_VERSION_MINOR,
+    "autoconvert",
+    "Selects convertor element based on caps",
+    plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
