diff --git a/common/utils/T/T.c b/common/utils/T/T.c
index 4876fe8652b7a56bb56de1a155cb7912a949c2b5..541cd239b788c0cd6fdc1ef91616472f1e77046f 100644
--- a/common/utils/T/T.c
+++ b/common/utils/T/T.c
@@ -31,6 +31,7 @@ static void get_message(int s)
   char t;
   int l;
   int id;
+  int is_on;
 
   if (read(s, &t, 1) != 1) abort();
 printf("got mess %d\n", t);
@@ -45,6 +46,18 @@ printf("got mess %d\n", t);
       l--;
     }
     break;
+  case 1:
+    /* set IDs as given */
+    /* optimize? */
+    if (read(s, &l, sizeof(int)) != sizeof(int)) abort();
+    id = 0;
+    while (l) {
+      if (read(s, &is_on, sizeof(int)) != sizeof(int)) abort();
+      T_IDs[id] = is_on;
+      id++;
+      l--;
+    }
+    break;
   }
 }