diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c
index 181ba2d..4d07f11 100644
--- a/ggsn/ggsn.c
+++ b/ggsn/ggsn.c
@@ -133,18 +133,26 @@
 }
 #endif
 
+static bool send_trap(const struct gsn_t *gsn, const struct pdp_t *pdp, const struct ippoolm_t *member, const char *var)
+{
+	char val[NAMESIZE];
+
+	snprintf(val, sizeof(val), "%" PRIu64 ",%s", pdp->imsi, inet_ntoa(member->addr));
+
+	if (ctrl_cmd_send_trap(gsn->ctrl, var, val) < 0) {
+		LOGP(DGGSN, LOGL_ERROR, "Failed to create and send TRAP for IMSI %" PRIu64 " [%s].\n", pdp->imsi, var);
+		return false;
+	}
+	return true;
+}
+
 int delete_context(struct pdp_t *pdp)
 {
 	DEBUGP(DGGSN, "Deleting PDP context\n");
 	struct ippoolm_t *member = pdp->peer;
-	char v[NAMESIZE];
 
 	if (pdp->peer) {
-		snprintf(v, sizeof(v), "%" PRIu64 ",%s", pdp->imsi,
-			 inet_ntoa(member->addr));
-		if (ctrl_cmd_send_trap(gsn->ctrl, "imsi-rem-ip", v) < 0)
-			LOGP(DGGSN, LOGL_ERROR, "Failed to create and send TRAP"
-			     " for IMSI %" PRIu64 " PDP deletion.\n", pdp->imsi);
+		send_trap(gsn, pdp, member, "imsi-rem-ip"); /* TRAP with IP removal */
 		ippool_freeip(ippool, (struct ippoolm_t *)pdp->peer);
 	} else
 		SYS_ERR(DGGSN, LOGL_ERROR, 0, "Peer not defined!");
@@ -162,7 +170,6 @@
 {
 	struct in_addr addr;
 	struct ippoolm_t *member;
-	char v[NAMESIZE];
 
 	DEBUGP(DGGSN, "Received create PDP context request\n");
 
@@ -192,10 +199,8 @@
 		SYS_ERR(DGGSN, LOGL_ERROR, 0,
 			"Cannot add tunnel to kernel: %s\n", strerror(errno));
 	}
-/* FIXME: naming? */
-	snprintf(v, sizeof(v), "%" PRIu64 ",%s", pdp->imsi, inet_ntoa(member->addr));
-	if (ctrl_cmd_send_trap(gsn->ctrl, "imsi-ass-ip", v) < 0) {
-		LOGP(DGGSN, LOGL_ERROR, "Trap creation failed.\n");
+
+	if (!send_trap(gsn, pdp, member, "imsi-ass-ip")) { /* TRAP with IP assignment */
 		gtp_create_context_resp(gsn, pdp, GTPCAUSE_NO_RESOURCES);
 		return 0;
 	}
