diff --git a/src/edit/src/editor.cpp b/src/edit/src/editor.cpp
index 4618254a6e57ac0b3969213b60ee4c00b571f105..e06ab2018ce462a7ece76c2bb7e6a58e832701c5 100644
--- a/src/edit/src/editor.cpp
+++ b/src/edit/src/editor.cpp
@@ -1017,7 +1017,9 @@ void Editor::initializeCube()
     using namespace rofi;
 
     module_type_voxel_graphs[cube] = std::make_shared<VoxelGraph>();
-    auto cube_node = Node::create();
+    const auto rot = glm::angleAxis(glm::radians(90.0f), glm::vec3(0.0f, 0.0f, -1.0f)) 
+                     * glm::angleAxis(glm::radians(90.0f), glm::vec3(0.0f, -1.0f, 0.0f));
+    auto cube_node = Node::create(glm::vec3(0.0f), rot);
     auto cube_voxel = module_type_voxel_graphs[cube]->addVoxel(cube_node);
     addVoxelMesh(cube_node);
     cube_node->addObject(cube_voxel);
@@ -1227,7 +1229,9 @@ void Editor::setModuleNodeHierarchyCube(voxel_graph_ptr vg)
             con_node->getParent().lock()->transferChild(con_node, body_node, true);
     }
 
-    body_node->rotateRotationQuat(glm::angleAxis(glm::radians(90.0f), glm::vec3(0.0f, -1.0f, 0.0f)));
+    const auto rot = glm::angleAxis(glm::radians(90.0f), glm::vec3(0.0f, 0.0f, -1.0f)) 
+                     * glm::angleAxis(glm::radians(90.0f), glm::vec3(0.0f, -1.0f, 0.0f));
+    body_node->rotateRotationQuat(rot);
 }
 
 void Editor::setModuleNodeHierarchyUniversal(voxel_graph_ptr vg)
diff --git a/src/filein/src/module_loader.cpp b/src/filein/src/module_loader.cpp
index 1434ec47fda3c2ce5547d74fe08f4e597042d50e..2e4b9265ccfae07aabf08bdd8555b74f1014f70c 100644
--- a/src/filein/src/module_loader.cpp
+++ b/src/filein/src/module_loader.cpp
@@ -844,12 +844,8 @@ std::map<uint64_t, objectbase_ptr> import_rigid_joints(voxel_graph_ptr vg,
             auto node = Node::create(voxel_side_direction * 0.5f, get_connector_face_rotation(voxel_side_direction));
 
             // adjust cube North
-            // if (node->getRotationAxisZLocal() == enum_to_vec(side::z_neg))
-            //     node->rotateRotationQuat(glm::rotation(node->getRotationAxisXLocal(), enum_to_vec(side::y_neg)));
-            // else if (node->getRotationAxisZLocal() == enum_to_vec(side::z_pos))
-            //     node->rotateRotationQuat(glm::rotation(node->getRotationAxisXLocal(), enum_to_vec(side::y_pos)));
-            // else
-            //     node->rotateRotationQuat(glm::rotation(node->getRotationAxisXLocal(), enum_to_vec(side::x_pos)));
+            if (at_voxel_side == side::x_neg || at_voxel_side == side::x_pos || at_voxel_side == side::z_pos)
+                node->rotateRotationQuat(glm::angleAxis(glm::radians(180.0f), node->getRotationAxisZLocal()));
 
             auto connector = vg->addConnector(node, connector_type::open);
             id_roficom_pairs.emplace(to, connector);