diff --git a/examples/twoway/decimating.c b/examples/twoway/decimating.c
index 705f4cec837bdd8aeeb4585881f8bd19ec09449a..f6696dbaeb6e73669b1941dd36dc31382ed00f69 100644
--- a/examples/twoway/decimating.c
+++ b/examples/twoway/decimating.c
@@ -111,7 +111,7 @@ static int wrap_reader_start(
 {
   struct decimating_private *decimating = action_context->context;
 
-  if (value == NULL) {
+  if (value == NULL && local_index != 0) {
     int *decimation, amount;
     
     labcomm2014_scheduler_data_lock(decimating->scheduler);
diff --git a/examples/twoway/introspecting.c b/examples/twoway/introspecting.c
index 87bffeb4f6b4a6c7dc6eb135e1a8245e95c700f4..6491dc6a022df89c45161478f2b0869aa62813f2 100644
--- a/examples/twoway/introspecting.c
+++ b/examples/twoway/introspecting.c
@@ -161,7 +161,7 @@ static int wrap_reader_start(
 {
   struct introspecting_private *introspecting = action_context->context;
   
-  if (value == NULL) {
+  if (value == NULL && local_index != 0) {
     struct handles_signature *handles_signature;
 
     handles_signature = labcomm2014_memory_alloc(introspecting->memory, 1,
diff --git a/lib/c/2014/labcomm2014_decoder.c b/lib/c/2014/labcomm2014_decoder.c
index 5b6418251f3bf09d345d5fdb0cafa922d9f24415..b38de4051862e8e4c5b4eed5e415ff2732d20acc 100644
--- a/lib/c/2014/labcomm2014_decoder.c
+++ b/lib/c/2014/labcomm2014_decoder.c
@@ -358,6 +358,10 @@ static int do_decode_one(struct labcomm2014_decoder *d)
     if (result < 0) {
       goto out;
     }
+    labcomm2014_reader_start(d->reader, d->reader->action_context,
+                             0, 0, NULL, NULL);
+    labcomm2014_reader_end(d->reader, d->reader->action_context);
+
   } else if (! d->version_ok) {
     DEBUG_FPRINTF(stderr, "No VERSION %d %d\n", remote_index, length);
     result = -ECONNRESET;