diff --git a/src/modules/conf_dialogs/e_int_config_profiles.c b/src/modules/conf_dialogs/e_int_config_profiles.c
index b16e088cb..ea3283ff2 100644
--- a/src/modules/conf_dialogs/e_int_config_profiles.c
+++ b/src/modules/conf_dialogs/e_int_config_profiles.c
@@ -276,6 +276,7 @@ _ilist_cb_selected(void *data)
else
e_widget_disabled_set(cfdata->o_reset, 1);
+ free(pdir);
pdir = strdup(buf);
if (pdir)
{
@@ -296,6 +297,7 @@ _ilist_cb_selected(void *data)
else
e_widget_textblock_markup_set(cfdata->o_text, _("Unknown"));
if (desk) efreet_desktop_free(desk);
+ free(pdir);
}
static void
@@ -325,10 +327,10 @@ _cb_delete(void *data, void *data2 __UNUSED__)
Del_Profile_Confirm_Data *d;
char buf[4096];
+ if (!data) return;
+
d = E_NEW(Del_Profile_Confirm_Data, 1);
- if (!d) return;
d->cfdata = data;
- if (!d->cfdata) return;
snprintf(buf, sizeof(buf),
_("You want to delete the \"%s\" profile.
"