78c8377feacf5f0633558e13154c86d38687c866
diff --git a/ChangeLog b/ChangeLog
index 2028a34..41bd391 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-04-09  Mathias Hasselmann  <mathias@openismus.com>
+
+	Bug 527214 – g_timer_elapsed() returns random values.
+
+	* glib/gtimer.c (g_timer_new()):
+	  Print warning if g_thread_init() has not been called yet.
+
 2008-04-08  Behdad Esfahbod  <behdad@gnome.org>
 
 	* glib/gunicode.h: Add ISO 15924 code comments for new scripts.
diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog
index 8afb8ca..19f1d55 100644
--- a/docs/reference/ChangeLog
+++ b/docs/reference/ChangeLog
@@ -1,3 +1,10 @@
+2008-04-09  Mathias Hasselmann  <mathias@openismus.com>
+
+	Bug 527214 – g_timer_elapsed() returns random values.
+
+	* docs/reference/glib/tmpl/timers.sgml:
+	  Add notes regarding gthreads dependency.
+
 2008-04-07  Matthias Clasen  <mclasen@redhat.com>
 
 	* glib/tmpl/unicode.sgml: Updates for Unicode 5.1
diff --git a/docs/reference/glib/tmpl/timers.sgml b/docs/reference/glib/tmpl/timers.sgml
index d346e3f..5229095 100644
--- a/docs/reference/glib/tmpl/timers.sgml
+++ b/docs/reference/glib/tmpl/timers.sgml
@@ -10,6 +10,10 @@ keep track of elapsed time
 This is done somewhat differently on different platforms, and can be tricky to
 get exactly right, so #GTimer provides a portable/convenient interface.
 </para>
+<note><para>
+#GTimer internally uses the threading API. Therefore g_thread_init() has to be
+called before creating #GTimer instances.
+</para></note>
 
 <!-- ##### SECTION See_Also ##### -->
 <para>
@@ -30,6 +34,9 @@ Opaque datatype that records a start time.
 Creates a new timer, and starts timing (i.e. g_timer_start() is implicitly
 called for you).
 </para>
+<note><para>
+Call g_thread_init() before using this function.
+</para></note>
 
 @Returns: a new #GTimer.
 
diff --git a/glib/gtimer.c b/glib/gtimer.c
index a29e39d..83f45ee 100644
--- a/glib/gtimer.c
+++ b/glib/gtimer.c
@@ -69,6 +69,10 @@ g_timer_new (void)
 {
   GTimer *timer;
 
+  if (!g_thread_supported ())
+    g_warning ("g_timer_new() called, but GThreads not initialized yet. "
+               "Call g_thread_init ().");
+
   timer = g_new (GTimer, 1);
   timer->active = TRUE;
 
