diff --git a/ampel-firmware/sensor_commands.cpp b/ampel-firmware/sensor_commands.cpp
index 8ef85ba0472b4010f091e9d63f3249090a7e6d27..24619125d8d041adc15440491fc0fe9aa52944cc 100644
--- a/ampel-firmware/sensor_commands.cpp
+++ b/ampel-firmware/sensor_commands.cpp
@@ -7,20 +7,19 @@ namespace sensor_commands {
 // A callback contains both a function and a pointer to arbitrary data
 // that will be passed as argument to the function.
   struct Callback {
-    Callback(void (*f)(void*) = 0, void *d = 0) :
-        function(f), data(d) {
+    Callback(const char *s = 0, void (*f)(void*) = 0, void *d = 0) :
+        name(s), function(f), data(d) {
     }
+    const char *name;
     void (*function)(void*);
     void *data;
   };
 
   Callback callbacks[MAX_CALLBACKS];
-  char callback_names[MAX_CALLBACKS][MAX_COMMAND_SIZE];
 
   void defineCallback(const char *command, void (*f)(void*), void *d) {
     if (callbacks_count < MAX_CALLBACKS) {
-      callbacks[callbacks_count] = Callback(f, d);
-      strlcpy(callback_names[callbacks_count], command, MAX_COMMAND_SIZE);
+      callbacks[callbacks_count] = Callback(command, f, d);
       callbacks_count++;
     } else {
       Serial.println(F("Too many callbacks have been defined."));
@@ -34,7 +33,7 @@ namespace sensor_commands {
     // Test all the callbacks.
     for (uint8_t i = 0; i < callbacks_count; i++) {
       Serial.print("Trying '");
-      Serial.print(callback_names[i]);
+      Serial.print(callbacks[i].name);
       Serial.println("'");
       callbacks[i].function(callbacks[i].data);
     }