diff --git a/source/RobotAPI/libraries/skills/manager/SkillManagerComponentPlugin.cpp b/source/RobotAPI/libraries/skills/manager/SkillManagerComponentPlugin.cpp
index 455215311950946070f5ffcf225dc75755cc6447..f0171437b9b4898a87a48fc2cc2e49d4a467e986 100644
--- a/source/RobotAPI/libraries/skills/manager/SkillManagerComponentPlugin.cpp
+++ b/source/RobotAPI/libraries/skills/manager/SkillManagerComponentPlugin.cpp
@@ -201,16 +201,25 @@ namespace armarx
         {
             const auto& n = it->first;
             const auto& s = it->second;
-            if (s)
+            try
             {
-                skills::provider::dto::SkillDescriptionMap m = s->getSkillDescriptions();
-                ret.insert({n, m});
-                ++it;
+                if (s)
+                {
+                    skills::provider::dto::SkillDescriptionMap m = s->getSkillDescriptions();
+                    ret.insert({n, m});
+                    ++it;
+                }
+                else
+                {
+                    ARMARX_WARNING << __PRETTY_FUNCTION__ << ": Found disconnected skill provider '"
+                                   << n << "'. Removing it from skills.";
+                    it = skillProviderMap.erase(it);
+                }
             }
-            else
+            catch (...)
             {
-                ARMARX_WARNING << __PRETTY_FUNCTION__ << ": Found disconnected skill provider '"
-                               << n << "'. Removing it from skills.";
+                ARMARX_WARNING << __PRETTY_FUNCTION__ << ": Found buggy skill provider '" << n
+                               << "'. Removing it from skills.";
                 it = skillProviderMap.erase(it);
             }
         }