diff --git a/src/flt_spoe.c b/src/flt_spoe.c
index 3014fa8..7b33222 100644
--- a/src/flt_spoe.c
+++ b/src/flt_spoe.c
@@ -407,6 +407,11 @@
 		memcpy(chk->str+chk->len, "async", 5);
 		chk->len += 5;
 	}
+	if (agent != NULL && (agent->flags & SPOE_FL_RCV_FRAGMENTATION)) {
+		if (chk->len) chk->str[chk->len++] = ',';
+		memcpy(chk->str+chk->len, "fragmentation", 13);
+		chk->len += 5;
+	}
 	if (spoe_encode_buffer(chk->str, chk->len, &p, end) == -1)
 		goto too_big;
 
@@ -2170,9 +2175,10 @@
 	return 1;
 
   too_big:
-	// FIXME: if fragmentation not supported =>
-	//  ctx->status_code = SPOE_CTX_ERR_TOO_BIG;
-	//  return -1;
+	if (!(agent->flags & SPOE_FL_SND_FRAGMENTATION)) {
+		ctx->status_code = SPOE_CTX_ERR_TOO_BIG;
+		return -1;
+	}
 
 	SPOE_PRINTF(stderr, "%d.%06d [SPOE/%-15s] %s: stream=%p"
 		    " - encode fragmented messages - spoe_appctx=%p"
@@ -3017,7 +3023,7 @@
 		curagent->engine_id      = NULL;
 		curagent->var_pfx        = NULL;
 		curagent->var_on_error   = NULL;
-		curagent->flags          = (SPOE_FL_PIPELINING | SPOE_FL_ASYNC);
+		curagent->flags          = (SPOE_FL_PIPELINING | SPOE_FL_ASYNC | SPOE_FL_SND_FRAGMENTATION);
 		curagent->cps_max        = 0;
 		curagent->eps_max        = 0;
 		curagent->max_frame_size = MAX_FRAME_SIZE;
@@ -3138,6 +3144,15 @@
 				curagent->flags |= SPOE_FL_ASYNC;
 			goto out;
 		}
+		else if (!strcmp(args[1], "send-frag-payload")) {
+			if (alertif_too_many_args(1, file, linenum, args, &err_code))
+				goto out;
+			if (kwm == 1)
+				curagent->flags &= ~SPOE_FL_SND_FRAGMENTATION;
+			else
+				curagent->flags |= SPOE_FL_SND_FRAGMENTATION;
+			goto out;
+		}
 
 		/* Following options does not support negation */
 		if (kwm == 1) {
