diff --git a/src/modules/notification/e_mod_popup.c b/src/modules/notification/e_mod_popup.c
index cc7e821bc..444bc551f 100644
--- a/src/modules/notification/e_mod_popup.c
+++ b/src/modules/notification/e_mod_popup.c
@@ -63,18 +63,20 @@ _notification_popup_merge(E_Notification_Notify *n)
len = strlen(popup->notif->body);
len += strlen(n->body);
len += 5; /* \xE2\x80\xA9 or */
- if (len < 8192) body_final = alloca(len + 1);
- else body_final = malloc(len + 1);
- /* Hack to allow e to include markup */
- snprintf(body_final, len + 1, "%s%s", popup->notif->body, n->body);
+ body_final = malloc(len + 1);
+ if (body_final)
+ {
+ /* Hack to allow e to include markup */
+ snprintf(body_final, len + 1, "%s%s", popup->notif->body, n->body);
- /* printf("set body %s\n", body_final); */
+ /* printf("set body %s\n", body_final); */
- eina_stringshare_replace(&n->body, body_final);
+ eina_stringshare_replace(&n->body, body_final);
- e_object_del(E_OBJECT(popup->notif));
- popup->notif = n;
- if (len >= 8192) free(body_final);
+ e_object_del(E_OBJECT(popup->notif));
+ popup->notif = n;
+ free(body_final);
+ }
return popup;
}