Index: trunk/demos/CircleFollower/uav/src/CircleFollower.cpp
===================================================================
--- trunk/demos/CircleFollower/uav/src/CircleFollower.cpp	(revision 131)
+++ trunk/demos/CircleFollower/uav/src/CircleFollower.cpp	(revision 135)
@@ -84,6 +84,6 @@
 const AhrsData *CircleFollower::GetOrientation(void) const {
     //get yaw from vrpn
-    Euler vrpnEuler;
-    uavVrpn->GetEuler(vrpnEuler);
+		Quaternion vrpnQuaternion;
+    uavVrpn->GetQuaternion(vrpnQuaternion);
 
     //get roll, pitch and w from imu
@@ -93,5 +93,5 @@
 
     Euler ahrsEuler=ahrsQuaternion.ToEuler();
-    ahrsEuler.yaw=vrpnEuler.yaw;
+    ahrsEuler.yaw=vrpnQuaternion.ToEuler().yaw;
     Quaternion mixQuaternion=ahrsEuler.ToQuaternion();
 
@@ -261,12 +261,11 @@
 
 void CircleFollower::VrpnPositionHold(void) {
-    Euler vrpn_euler;
-    Vector3D vrpn_pos;
-
-    uavVrpn->GetEuler(vrpn_euler);
-    yawHold=vrpn_euler.yaw;
-
-    uavVrpn->GetPosition(vrpn_pos);
-    vrpn_pos.To2Dxy(posHold);
+		Quaternion vrpnQuaternion;
+    uavVrpn->GetQuaternion(vrpnQuaternion);
+		yawHold=vrpnQuaternion.ToEuler().yaw;
+
+    Vector3D vrpnPosition;
+    uavVrpn->GetPosition(vrpnPosition);
+    vrpnPosition.To2Dxy(posHold);
 
     uX->Reset();
Index: trunk/demos/SimpleFleet/uav/src/SimpleFleet.cpp
===================================================================
--- trunk/demos/SimpleFleet/uav/src/SimpleFleet.cpp	(revision 131)
+++ trunk/demos/SimpleFleet/uav/src/SimpleFleet.cpp	(revision 135)
@@ -106,6 +106,6 @@
 const AhrsData *SimpleFleet::GetOrientation(void) const {
     //get yaw from vrpn
-    Euler vrpnEuler;
-    uavVrpn->GetEuler(vrpnEuler);
+		Quaternion vrpnQuaternion;
+    uavVrpn->GetQuaternion(vrpnQuaternion);
 
     //get roll, pitch and w from imu
@@ -115,5 +115,5 @@
 
     Euler ahrsEuler=ahrsQuaternion.ToEuler();
-    ahrsEuler.yaw=vrpnEuler.yaw;
+    ahrsEuler.yaw=vrpnQuaternion.ToEuler().yaw;
     Quaternion mixQuaternion=ahrsEuler.ToQuaternion();
 
@@ -158,9 +158,7 @@
     Vector3D uav_pos,uav_vel; // in VRPN coordinate system
     Vector2D uav_2Dpos,uav_2Dvel; // in VRPN coordinate system
-    Euler vrpn_euler; // in VRPN coordinate system
 
     uavVrpn->GetPosition(uav_pos);
     uavVrpn->GetSpeed(uav_vel);
-    uavVrpn->GetEuler(vrpn_euler);
 
     uav_pos.To2Dxy(uav_2Dpos);
@@ -169,7 +167,7 @@
     if (behaviourMode==BehaviourMode_t::PositionHold1 || behaviourMode==BehaviourMode_t::PositionHold2
         || behaviourMode==BehaviourMode_t::PositionHold3 || behaviourMode==BehaviourMode_t::PositionHold4) {
-        pos_error=uav_2Dpos-pos_hold;
+        pos_error=uav_2Dpos-posHold;
         vel_error=uav_2Dvel;
-        yaw_ref=yaw_hold;
+        yaw_ref=yawHold;
     } else { //Circle
         Vector2D circle_pos,circle_vel;
@@ -222,8 +220,8 @@
             VrpnPositionHold();
             behaviourMode=BehaviourMode_t::PositionHold2;
-            if(pos_hold.y<0) {
-                pos_hold.y-=yDisplacement->Value();
+            if(posHold.y<0) {
+                posHold.y-=yDisplacement->Value();
             } else {
-                pos_hold.y+=yDisplacement->Value();
+                posHold.y+=yDisplacement->Value();
             }
             posWait=GetTime();
@@ -232,8 +230,8 @@
         if (behaviourMode==BehaviourMode_t::PositionHold2 && GetTime()>(posWait+3*(Time)1000000000)) {
             behaviourMode=BehaviourMode_t::PositionHold3;
-            if(pos_hold.y<0) {
-                pos_hold.y+=yDisplacement->Value();
+            if(posHold.y<0) {
+                posHold.y+=yDisplacement->Value();
             } else {
-                pos_hold.y-=yDisplacement->Value();
+                posHold.y-=yDisplacement->Value();
             }
             posWait=GetTime();
@@ -343,19 +341,18 @@
 
 void SimpleFleet::VrpnPositionHold(void) {
-    Euler vrpn_euler;
-    Vector3D vrpn_pos;
-
-    if (SetOrientationMode(OrientationMode_t::Custom)) {
+  if (SetOrientationMode(OrientationMode_t::Custom)) {
         Thread::Info("Demo flotte: holding position\n");
     } else {
         Thread::Info("Demo flotte: could not hold position\n");
         //return;
-    }
-
-    uavVrpn->GetEuler(vrpn_euler);
-    yaw_hold=vrpn_euler.yaw;
-
-    uavVrpn->GetPosition(vrpn_pos);
-    vrpn_pos.To2Dxy(pos_hold);
+    }  
+		
+		Quaternion vrpnQuaternion;
+    uavVrpn->GetQuaternion(vrpnQuaternion);
+		yawHold=vrpnQuaternion.ToEuler().yaw;
+
+		Vector3D vrpnPosition;
+    uavVrpn->GetPosition(vrpnPosition);
+    vrpnPosition.To2Dxy(posHold);
 
     u_x->Reset();
Index: trunk/demos/SimpleFleet/uav/src/SimpleFleet.h
===================================================================
--- trunk/demos/SimpleFleet/uav/src/SimpleFleet.h	(revision 131)
+++ trunk/demos/SimpleFleet/uav/src/SimpleFleet.h	(revision 135)
@@ -70,6 +70,6 @@
         flair::filter::Pid *u_x, *u_y;
 
-        flair::core::Vector2D pos_hold;
-        float yaw_hold;
+        flair::core::Vector2D posHold;
+        float yawHold;
         flair::core::Socket *message;
         flair::core::Time posWait;
