--- a/jni/src/AtkWrapper.c
+++ b/jni/src/AtkWrapper.c
@@ -683,6 +683,8 @@ signal_emit_handler (gpointer p)
                             "children_changed::add",
                             child_index,
                             para->child_impl);
+        if (G_OBJECT(atk_obj) != NULL)
+          g_object_ref(G_OBJECT(atk_obj));
         break;
       }
       case Sig_Object_Children_Changed_Remove:
