diff --git a/docs/reference/gobject/tut_gsignal.xml b/docs/reference/gobject/tut_gsignal.xml
index 4ed4211fa..5559673cb 100644
--- a/docs/reference/gobject/tut_gsignal.xml
+++ b/docs/reference/gobject/tut_gsignal.xml
@@ -187,10 +187,10 @@ g_cclosure_marshal_VOID__INT (GClosure *closure,
Each signal is registered in the type system together with the type on which
it can be emitted: users of the type are said to connect
- to the signal on a given type instance when they register a closure to be
- invoked upon the signal emission. Users can also emit the signal by themselves
- or stop the emission of the signal from within one of the closures connected
- to the signal.
+ to the signal on a given type instance when they register a closure to be
+ invoked upon the signal emission. The closure will be called synchronously on emission.
+ Users can also emit the signal by themselves or stop the emission of the signal from
+ within one of the closures connected to the signal.
@@ -352,7 +352,7 @@ void g_signal_emitv (const GValue *instance_and_params,
- Signal emission can be decomposed in 5 steps:
+ Signal emission is done synchronously and can be decomposed in 5 steps:
RUN_FIRST: if the
diff --git a/gobject/gsignal.c b/gobject/gsignal.c
index 9cabacd15..df6c3e39f 100644
--- a/gobject/gsignal.c
+++ b/gobject/gsignal.c
@@ -3117,7 +3117,8 @@ g_signal_has_handler_pending (gpointer instance,
* store the return value of the signal emission. This must be provided if the
* specified signal returns a value, but may be ignored otherwise.
*
- * Emits a signal.
+ * Emits a signal. Signal emission is done synchronously.
+ * The method will only return control after all handlers are called or signal emission was stopped.
*
* Note that g_signal_emitv() doesn't change @return_value if no handlers are
* connected, in contrast to g_signal_emit() and g_signal_emit_valist().
@@ -3255,7 +3256,8 @@ accumulate (GSignalInvocationHint *ihint,
* location for the return value. If the return type of the signal
* is #G_TYPE_NONE, the return value location can be omitted.
*
- * Emits a signal.
+ * Emits a signal. Signal emission is done synchronously.
+ * The method will only return control after all handlers are called or signal emission was stopped.
*
* Note that g_signal_emit_valist() resets the return value to the default
* if no handlers are connected, in contrast to g_signal_emitv().
@@ -3534,7 +3536,8 @@ g_signal_emit_valist (gpointer instance,
* location for the return value. If the return type of the signal
* is #G_TYPE_NONE, the return value location can be omitted.
*
- * Emits a signal.
+ * Emits a signal. Signal emission is done synchronously.
+ * The method will only return control after all handlers are called or signal emission was stopped.
*
* Note that g_signal_emit() resets the return value to the default
* if no handlers are connected, in contrast to g_signal_emitv().
@@ -3561,7 +3564,8 @@ g_signal_emit (gpointer instance,
* is %G_TYPE_NONE, the return value location can be omitted. The
* number of parameters to pass to this function is defined when creating the signal.
*
- * Emits a signal.
+ * Emits a signal. Signal emission is done synchronously.
+ * The method will only return control after all handlers are called or signal emission was stopped.
*
* Note that g_signal_emit_by_name() resets the return value to the default
* if no handlers are connected, in contrast to g_signal_emitv().
diff --git a/gobject/gsignal.h b/gobject/gsignal.h
index 96e4eb38a..7e83924f6 100644
--- a/gobject/gsignal.h
+++ b/gobject/gsignal.h
@@ -497,7 +497,7 @@ void g_signal_chain_from_overridden_handler (gpointer instance,
*
* Connects a #GCallback function to a signal for a particular object.
*
- * The handler will be called before the default handler of the signal.
+ * The handler will be called synchronously, before the default handler of the signal. g_signal_emit() will not return control until all handlers are called.
*
* See [memory management of signal handlers][signal-memory-management] for
* details on how to handle the return value and memory management of @data.
@@ -515,7 +515,7 @@ void g_signal_chain_from_overridden_handler (gpointer instance,
*
* Connects a #GCallback function to a signal for a particular object.
*
- * The handler will be called after the default handler of the signal.
+ * The handler will be called synchronously, after the default handler of the signal.
*
* Returns: the handler ID, of type #gulong (always greater than 0 for successful connections)
*/