diff --git a/beat/web/team/api.py b/beat/web/team/api.py
index a2d94bb5289c36bf38a970c7a0113ebc33f7a0e5..a4f4a02d89fe9748b88acf35411c8f75f96b5d58 100644
--- a/beat/web/team/api.py
+++ b/beat/web/team/api.py
@@ -42,7 +42,7 @@ from .serializers import TeamUpdateSerializer
 from .models import Team
 from .permissions import IsOwner, HasPrivacyLevel
 
-from ..common.responses import BadRequestResponse
+from ..common.responses import BadRequestResponse, ForbiddenResponse
 from ..common.mixins import CommonContextMixin
 
 
@@ -117,6 +117,11 @@ class TeamDetailView(CommonContextMixin, generics.RetrieveUpdateDestroyAPIView):
 
     def delete(self, request, owner_name, team_name):
         team = self.get_queryset()
+
+        # Check that the team can still be deleted
+        if not(team.deletable()):
+            return ForbiddenResponse("The team isn't deletable (it has been used to share %d objects with its members)" % team.total_shares())
+
         team.delete()
         return Response(status=status.HTTP_204_NO_CONTENT)
 
diff --git a/beat/web/team/models.py b/beat/web/team/models.py
index 69bd56e0ed3b536e100e7e19c50dafe63be7d236..b1c86908e6f2ff1ee9277de20dbb9504d534e1e1 100644
--- a/beat/web/team/models.py
+++ b/beat/web/team/models.py
@@ -93,6 +93,32 @@ class Team(models.Model):
         return (self.owner.username, self.name)
 
 
+    def total_shares(self):
+
+        used_at = 0
+        used_at += self.shared_algorithms.count()
+        used_at += self.shared_databases.count()
+        used_at += self.shared_dataformats.count()
+        used_at += self.shared_environment.count()
+        used_at += self.shared_experiments.count()
+        used_at += self.shared_librarys.count()
+        used_at += self.shared_plotterparameters.count()
+        used_at += self.shared_plotters.count()
+        used_at += self.shared_searchs.count()
+        used_at += self.shared_toolchains.count()
+        used_at += self.usable_algorithm.count()
+        used_at += self.usable_library.count()
+        used_at += self.usable_plotterparameters.count()
+        used_at += self.usable_plotters.count()
+
+        return used_at
+
+
+    def deletable(self):
+
+        return not self.total_shares()
+
+
     #_____ Overrides __________
 
     def __unicode__(self):