diff --git a/src/uas/PxQuadMAV.cc b/src/uas/PxQuadMAV.cc
index 72beac8bec6ffb457f86a143c2bc02b62b45b513..71348cee4c5a553bd59b5376bcc3892ae80ec648 100644
--- a/src/uas/PxQuadMAV.cc
+++ b/src/uas/PxQuadMAV.cc
@@ -1,4 +1,5 @@
 #include "PxQuadMAV.h"
+#include "GAudioOutput.h"
 
 PxQuadMAV::PxQuadMAV(MAVLinkProtocol* mavlink, int id) :
         UAS(mavlink, id)
@@ -60,6 +61,31 @@ void PxQuadMAV::receiveMessage(LinkInterface* link, mavlink_message_t message)
             emit valueChanged(uasId, str+".z", vect.z, MG::TIME::getGroundTimeNow());
         }
         break;
+    case MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE:
+        {
+            mavlink_vision_position_estimate_t pos;
+            mavlink_msg_vision_position_estimate_decode(&message, &pos);
+            quint64 time = getUnixTime(pos.usec);
+            emit valueChanged(uasId, "vis. time", pos.usec, time);
+            emit valueChanged(uasId, "vis. roll", pos.roll, time);
+            emit valueChanged(uasId, "vis. pitch", pos.pitch, time);
+            emit valueChanged(uasId, "vis. yaw", pos.yaw, time);
+            emit valueChanged(uasId, "vis. x", pos.x, time);
+            emit valueChanged(uasId, "vis. y", pos.y, time);
+            emit valueChanged(uasId, "vis. z", pos.z, time);
+            emit valueChanged(uasId, "vis. vx", pos.vx, time);
+            emit valueChanged(uasId, "vis. vy", pos.vy, time);
+            emit valueChanged(uasId, "vis. vz", pos.vz, time);
+            emit valueChanged(uasId, "vis. vyaw", pos.vyaw, time);
+            // Set internal state
+            if (!positionLock)
+            {
+                // If position was not locked before, notify positive
+                GAudioOutput::instance()->notifyPositive();
+            }
+            positionLock = true;
+        }
+        break;
     default:
         // Do nothing
         break;
diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc
index c1b6ca963538f59e89cf168f80040370220a3e73..f48ce8faf9b1ed325dfdb057ef02b55f09a1fe5e 100644
--- a/src/uas/UAS.cc
+++ b/src/uas/UAS.cc
@@ -306,37 +306,6 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message)
                 emit attitudeChanged(this, mavlink_msg_attitude_get_roll(&message), mavlink_msg_attitude_get_pitch(&message), mavlink_msg_attitude_get_yaw(&message), time);
             }
             break;
-        case MAVLINK_MSG_ID_VISION_POSITION_ESTIMATE:
-            {
-                mavlink_vision_position_estimate_t pos;
-                mavlink_msg_vision_position_estimate_decode(&message, &pos);
-                quint64 time = getUnixTime(pos.usec);
-                emit valueChanged(uasId, "vis. time", pos.usec, time);
-                emit valueChanged(uasId, "vis. roll", pos.roll, time);
-                emit valueChanged(uasId, "vis. pitch", pos.pitch, time);
-                emit valueChanged(uasId, "vis. yaw", pos.yaw, time);
-                emit valueChanged(uasId, "vis. x", pos.x, time);
-                emit valueChanged(uasId, "vis. y", pos.y, time);
-                emit valueChanged(uasId, "vis. z", pos.z, time);
-                // FIXME Only for testing for now
-                emit valueChanged(uasId, "vis. rot r1", pos.r1, time);
-                emit valueChanged(uasId, "vis. rot r2", pos.r2, time);
-                emit valueChanged(uasId, "vis. rot r3", pos.r3, time);
-                emit valueChanged(uasId, "vis. rot r4", pos.r4, time);
-                emit valueChanged(uasId, "vis. rot r5", pos.r5, time);
-                emit valueChanged(uasId, "vis. rot r6", pos.r6, time);
-                emit valueChanged(uasId, "vis. rot r7", pos.r7, time);
-                emit valueChanged(uasId, "vis. rot r8", pos.r8, time);
-                emit valueChanged(uasId, "vis. rot r9", pos.r9, time);
-                // Set internal state
-                if (!positionLock)
-                {
-                    // If position was not locked before, notify positive
-                    GAudioOutput::instance()->notifyPositive();
-                }
-                positionLock = true;
-            }
-            break;
         case MAVLINK_MSG_ID_LOCAL_POSITION:
             //std::cerr << std::endl;
             //std::cerr << "Decoded attitude message:" << " roll: " << std::dec << mavlink_msg_attitude_get_roll(message.payload) << " pitch: " << mavlink_msg_attitude_get_pitch(message.payload) << " yaw: " << mavlink_msg_attitude_get_yaw(message.payload) << std::endl;