diff --git a/gst/gst.c b/gst/gst.c
index 302764b395..633fba5b94 100644
--- a/gst/gst.c
+++ b/gst/gst.c
@@ -31,6 +31,7 @@
 #include "gstbin.h"
 #include "gstpipeline.h"
 #include "gstthread.h"
+#include "gsttee.h"
 
 
 
@@ -75,7 +76,8 @@ gst_init (int *argc, char **argv[])
   /* register some standard builtin types */
   gst_elementfactory_new ("bin", gst_bin_get_type (), &gst_bin_details);
   gst_elementfactory_new ("pipeline", gst_pipeline_get_type (), &gst_pipeline_details);
-  gst_elementfactory_new("thread", gst_thread_get_type (), &gst_thread_details);
+  gst_elementfactory_new ("thread", gst_thread_get_type (), &gst_thread_details);
+  gst_elementfactory_new ("tee", gst_tee_get_type (), &gst_tee_details);
 
   _gst_trace_on = 0;
   if (_gst_trace_on) {
diff --git a/gst/gsttee.c b/gst/gsttee.c
index 44b7cc561a..be5ed0213f 100644
--- a/gst/gsttee.c
+++ b/gst/gsttee.c
@@ -101,9 +101,7 @@ static void gst_tee_init(GstTee *tee) {
  * Returns: the new tee element
  */
 GstElement *gst_tee_new(gchar *name) {
-  GstElement *tee = GST_ELEMENT(gtk_type_new(GST_TYPE_TEE));
-  gst_element_set_name(GST_ELEMENT(tee),name);
-  return tee;
+  return gst_elementfactory_make ("tee", name);
 }
 
 /**
diff --git a/gst/gsttee.h b/gst/gsttee.h
index 762b8672a3..3d9a90a7cd 100644
--- a/gst/gsttee.h
+++ b/gst/gsttee.h
@@ -31,6 +31,7 @@
 extern "C" {
 #endif /* __cplusplus */
 
+extern GstElementDetails gst_tee_details;
 
 #define GST_TYPE_TEE \
   (gst_tee_get_type())