diff --git a/src/edit/src/editor.cpp b/src/edit/src/editor.cpp
index 9388074dca954005136e76e0cd2b279913bcab7f..4618254a6e57ac0b3969213b60ee4c00b571f105 100644
--- a/src/edit/src/editor.cpp
+++ b/src/edit/src/editor.cpp
@@ -2282,6 +2282,7 @@ void Editor::exitManipulateModule()
 void Editor::exitRotateComponent()
 {
     scene->manageSelection(nullptr);
+    selected_module = nullptr;
     prev_rebuild_node = nullptr;
     can_rotate_component = true;
     is_rotating_component = false;
@@ -2680,7 +2681,7 @@ void Editor::teleportModulesByConnectors(const connector_ptr source_connector, c
     const auto oriented_angle = glm::orientedAngle(source_north, destination_north, destination_facing);
 
     source_parent->rotateRotationQuat(glm::angleAxis(oriented_angle, destination_facing));
-    
+
     // Rotate to selected cardinality
     auto orientation = glm::radians(rofi::cardinal_to_degree(selected_cardinality));
 
diff --git a/src/gui/src/ui.cpp b/src/gui/src/ui.cpp
index ee8affdb4d0e1ff169ad65f3f4831f7c4b2215f2..5f95fe865cad4b4303723c19b5f015a0b34ab4b5 100644
--- a/src/gui/src/ui.cpp
+++ b/src/gui/src/ui.cpp
@@ -736,6 +736,10 @@ void module_rotation_ui(const osi::Window &window, edit::UIData &data)
 
     ImGui::End();
 
+    // DragFloat still changes value when step is set to 0
+    if (data.module_rotation_step == 0)
+            euler_angles = prev_euler_angles;
+
     data.module_rotation_angles = euler_angles - prev_euler_angles;
     data.is_rotating_module = data.module_rotation_angles != glm::vec3(0.0f, 0.0f, 0.0f);
 }
@@ -827,6 +831,10 @@ void component_rotation_ui(const osi::Window &window, edit::UIData &data)
 
     ImGui::End();
 
+    // DragFloat still changes value when step is set to 0
+    if (data.component_rotation_step == 0)
+        current_rotation = prev_rotation;
+
     data.component_rotation_angle = component_info == "Body A" ? prev_rotation - current_rotation : current_rotation - prev_rotation;
     data.is_rotating_component = data.component_rotation_angle != 0;
 }