diff --git a/src/muebreceiver.cc b/src/muebreceiver.cc
index c4c122dbb74a6f9c28f7fbad0900c8e4ceae0ab1..cce29c950ee1b271755f30336bce10594e24a7f4 100644
--- a/src/muebreceiver.cc
+++ b/src/muebreceiver.cc
@@ -1,5 +1,7 @@
 #include "muebreceiver.h"
 
+#include <cstring>
+
 #include "muebreceiver_p.h"
 
 MuebReceiver::MuebReceiver(QObject *parent)
@@ -57,11 +59,7 @@ void MuebReceiver::ReadPendingDatagrams() {
         }
         // No compression
       } else {
-        // FIXME use better copy method
-        for (auto i : data) {
-          *frame_begin = i;
-          frame_begin++;
-        }
+        std::memcpy(frame_begin, data.constData(), data.size());
       }
 
       emit(FrameChanged(d->frame));