diff --git a/source/RobotAPI/components/skills/SkillProviderExample/HelloWorld.cpp b/source/RobotAPI/components/skills/SkillProviderExample/HelloWorld.cpp
index edf918402a4c8ed1bbe510ab553d6dc568540dd5..d3e66e838eeae19ae089f4af76d4d9d4f9cfc33b 100644
--- a/source/RobotAPI/components/skills/SkillProviderExample/HelloWorld.cpp
+++ b/source/RobotAPI/components/skills/SkillProviderExample/HelloWorld.cpp
@@ -29,7 +29,8 @@ namespace armarx::skills::provider
                                 .rootProfileDefaults = root_profile_params.toAron(),
                                 .timeout = armarx::core::time::Duration::MilliSeconds(1000),
                                 .parametersType =
-                                    armarx::skills::Example::HelloWorldAcceptedType::ToAronType()};
+                                    armarx::skills::Example::HelloWorldAcceptedType::ToAronType(),
+                                .resultType = armarx::skills::Example::HelloWorldAcceptedType::ToAronType()};
     }
 
     Skill::MainResult
@@ -42,6 +43,6 @@ namespace armarx::skills::provider
                                 .dump(2)
                          << "\n"
                          << "(executed at: " << IceUtil::Time::now() << ")";
-        return {TerminatedSkillStatus::Succeeded, nullptr};
+        return {TerminatedSkillStatus::Succeeded, in.parameters.toAron()};
     }
 } // namespace armarx::skills::provider
diff --git a/source/RobotAPI/libraries/skills/core/SkillStatusUpdate.cpp b/source/RobotAPI/libraries/skills/core/SkillStatusUpdate.cpp
index 599126041d81ffecd9485285a785acd667cc1e1a..39220a32bc28269232f506d8368cb5394980b87b 100644
--- a/source/RobotAPI/libraries/skills/core/SkillStatusUpdate.cpp
+++ b/source/RobotAPI/libraries/skills/core/SkillStatusUpdate.cpp
@@ -371,6 +371,7 @@ namespace armarx
                 .executionId = skills::SkillExecutionID::FromIce(update.executionId, providerId),
                 .parameters = armarx::aron::data::Dict::FromAronDictDTO(update.parameters),
                 .callbackInterface = update.callbackInterface,
+                .result = armarx::aron::data::Dict::FromAronDictDTO(update.result)
             }};
             skills::fromIce(update.status, ret.status);
             setResultFromIce(ret, update);
diff --git a/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.cpp b/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.cpp
index 55f9d80c01a78154aa95780e2cc6f549be94f843..25fe34efa5b5c26ffed19bdca3680555302326f6 100644
--- a/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.cpp
+++ b/source/RobotAPI/libraries/skills/provider/detail/SkillImplementationWrapper.cpp
@@ -340,7 +340,7 @@ namespace armarx
             // Exit succeeded!
             // All succeeded!
             {
-                updateStatus(SkillStatus::Succeeded);
+                updateStatus(SkillStatus::Succeeded, mainRet.data);
 
                 // return result of main method
                 std::unique_lock l(skillStatusesMutex);