diff --git a/semantics/saving.py b/semantics/saving.py
index 03e8d2f..26bfc15 100644
--- a/semantics/saving.py
+++ b/semantics/saving.py
@@ -15,6 +15,7 @@ def modify_frames(lemma_id, operations, user):
     make_operations(lemma_id, operations)
 
 def make_operations(lemma_id, operations):
+    complements_to_test = set([])
     translation = {'unit_id': {}, 'frame_id': {}, 'complement_id': {}, 'preference_id': {}}
     entry = Lemma.objects.get(id=lemma_id).entry_obj
     for operation in operations:
@@ -78,6 +79,7 @@ def make_operations(lemma_id, operations):
             argument_id = int(schema_data[5])
             alternation = int(schema_data[7])
             disconnect(frame_id, complement_id, schema_id, position_id, argument_id, alternation)
+            complements_to_test.add((frame_id, complement_id))
         elif operation['operation'] == "assign_role":
             if int(operation['frame_id']) in translation['frame_id']:
                 frame_id = translation['frame_id'][int(operation['frame_id'])]
@@ -133,6 +135,16 @@ def make_operations(lemma_id, operations):
             remove_preference(frame_id, complement_id, preference_id)
         else:
             pass
+
+    for frame_id, complement_id in complements_to_test:
+        complements = Complement.objects.filter(id=complement_id)
+        if len(complements) > 0:
+            complement = complements[0]
+        for role in complement.roles.all():
+            if role.role == u'Lemma':
+                if len(complement.realizations.all()) == 0:
+                    remove_argument(frame_id, complement_id)
+                         
         
 def create_frame(entry, luids):
     frame = SemanticFrame(entry=entry)