diff --git a/src/style.cpp b/src/style.cpp
index a5b25e6ffa8a2861e8c3b373a239cdbe69d32a2a..ad4e509f6c0ca9129ebbaa350c9a35b7e16b0c5b 100644 (file)
--- a/src/style.cpp
+++ b/src/style.cpp
style->filter.href->changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_style_filter_ref_changed), style));
}
- if (style->filter.href && parent->href) {
+ if (style->filter.href && parent->href && parent->href->getObject()) {
try {
style->filter.href->attach(*parent->href->getURI());
} catch (Inkscape::BadURIException &e) {
@@ -3849,13 +3849,15 @@ sp_style_set_property_url (SPObject *item, gchar const *property, SPObject *link
if (repr == NULL) return;
- g_return_if_fail(linked != NULL);
-
- gchar *val = g_strdup_printf("url(#%s)", SP_OBJECT_ID(linked));
-
SPCSSAttr *css = sp_repr_css_attr_new();
- sp_repr_css_set_property(css, property, val);
- g_free(val);
+ if (linked) {
+ gchar *val = g_strdup_printf("url(#%s)", SP_OBJECT_ID(linked));
+ sp_repr_css_set_property(css, property, val);
+ g_free(val);
+ } else {
+ sp_repr_css_unset_property(css, "filter");
+ }
+
if (recursive) {
sp_repr_css_change_recursive(repr, css, "style");
} else {