diff --git a/pps_ws/src/d_fall_pps/src/PPSClient.cpp b/pps_ws/src/d_fall_pps/src/PPSClient.cpp
index ca6f6024ab80bb07af5d0dd44572cfa11db70ba1..20376e83824281ec0a715f8d3e8fda75a6c6f26a 100755
--- a/pps_ws/src/d_fall_pps/src/PPSClient.cpp
+++ b/pps_ws/src/d_fall_pps/src/PPSClient.cpp
@@ -710,7 +710,8 @@ void setBatteryStateTo(int new_battery_state)
         case BATTERY_STATE_LOW:
             m_battery_state = BATTERY_STATE_LOW;
             ROS_INFO("changed battery state to low");
-            changeFlyingStateTo(STATE_LAND);
+            if(flying_state != STATE_MOTORS_OFF)
+                changeFlyingStateTo(STATE_LAND);
             break;
         default:
             ROS_INFO("Unknown battery state command, set to normal");
@@ -733,7 +734,8 @@ void CFBatteryCallback(const std_msgs::Float32& msg)
     if((flying_state != STATE_MOTORS_OFF && (filtered_battery_voltage < m_battery_threshold_while_flying)) ||
        (flying_state == STATE_MOTORS_OFF && (filtered_battery_voltage < m_battery_threshold_while_motors_off)))
     {
-        setBatteryStateTo(BATTERY_STATE_LOW);
+        if(getBatteryState() != BATTERY_STATE_LOW)
+            setBatteryStateTo(BATTERY_STATE_LOW);
         ROS_INFO("low level battery triggered");
     }
     else                        //maybe add hysteresis somewhere here?