diff --git a/examples/asymcute_mqttsn/main.c b/examples/asymcute_mqttsn/main.c
index f0f58336e00fc6ffec8421c4b41f3750cf24cd50..430a3dc81b2959327615c495c58387283542e04b 100644
--- a/examples/asymcute_mqttsn/main.c
+++ b/examples/asymcute_mqttsn/main.c
@@ -128,7 +128,7 @@ static int _topic_find(asymcute_topic_t *t, const char *name)
         if (asymcute_topic_is_reg(&_topics[i]) &&
             (strncmp(name, _topics[i].name, sizeof(_topics[i].name)) == 0)) {
             if (t) {
-                memcpy(t, &_topics[i], sizeof(asymcute_topic_t));
+                *t = _topics[i];
             }
             return 0;
         }