diff -up gtkhtml-4.8.5/components/editor/gtkhtml-editor-signals.c.crash-link-update gtkhtml-4.8.5/components/editor/gtkhtml-editor-signals.c --- gtkhtml-4.8.5/components/editor/gtkhtml-editor-signals.c.crash-link-update 2014-03-24 10:04:22.000000000 +0100 +++ gtkhtml-4.8.5/components/editor/gtkhtml-editor-signals.c 2015-08-26 14:51:26.157415455 +0200 @@ -1053,17 +1053,22 @@ gtkhtml_editor_link_properties_descripti glong length; Link *link; - link = html_text_get_link_at_offset (HTML_TEXT (html->engine->cursor->object), html->engine->cursor->offset); + if (HTML_IS_TEXT (html->engine->cursor->object)) + link = html_text_get_link_at_offset (HTML_TEXT (html->engine->cursor->object), html->engine->cursor->offset); + else + link = NULL; length = g_utf8_strlen (text, -1); if (link && link->start_offset != link->end_offset) { + HTMLObject *cursor_object = html->engine->cursor->object; + html_cursor_jump_to ( html->engine->cursor, html->engine, - html->engine->cursor->object, link->start_offset); + cursor_object, link->start_offset); html_engine_set_mark (html->engine); html_cursor_jump_to ( html->engine->cursor, html->engine, - html->engine->cursor->object, link->end_offset); + cursor_object, link->end_offset); html_engine_delete (html->engine); } @@ -1109,17 +1114,22 @@ gtkhtml_editor_link_properties_url_chang Link *link; const gchar *descr = gtk_entry_get_text (GTK_ENTRY (dsc_entry)); - link = html_text_get_link_at_offset (HTML_TEXT (html->engine->cursor->object), html->engine->cursor->offset); + if (HTML_IS_TEXT (html->engine->cursor->object)) + link = html_text_get_link_at_offset (HTML_TEXT (html->engine->cursor->object), html->engine->cursor->offset); + else + link = NULL; length = g_utf8_strlen (descr, -1); if (link && link->start_offset != link->end_offset) { + HTMLObject *cursor_object = html->engine->cursor->object; + html_cursor_jump_to ( html->engine->cursor, html->engine, - html->engine->cursor->object, link->start_offset); + cursor_object, link->start_offset); html_engine_set_mark (html->engine); html_cursor_jump_to ( html->engine->cursor, html->engine, - html->engine->cursor->object, link->end_offset); + cursor_object, link->end_offset); html_engine_delete (html->engine); } @@ -1158,7 +1168,7 @@ gtkhtml_editor_link_properties_show_wind cursor->object, cursor->offset); if (url != NULL) { - if (!HTML_IS_IMAGE (cursor->object)) { + if (HTML_IS_TEXT (cursor->object)) { Link *link; link = html_text_get_link_at_offset (