diff --git a/entries/views.py b/entries/views.py
index 0de4763e1442c8a422ce0c4299a0f205731d726e..40da2f32b225a6729a07df85351bd8b496f5f02c 100644
--- a/entries/views.py
+++ b/entries/views.py
@@ -21,7 +21,7 @@ from connections.models import Entry, Subentry, ArgumentConnection, RealisationD
 from meanings.models import LexicalUnit
 from syntax.models import NaturalLanguageDescription, Schema
 from semantics.models import Frame, PredefinedSelectionalPreference, SelectivePreferenceRelations, SemanticRole, \
-    RoleAttribute, RoleSubAttribute
+    RoleAttribute, RoleSubAttribute, SelectionalPreferenceRelation
 
 from common.decorators import ajax_required, ajax
 from unifier.models import UnifiedFrame
@@ -1102,7 +1102,7 @@ def ajax_role_sub_attributes(request):
 @ajax(method='get', encode_result=True)
 def ajax_relations(request):
 
-    relations = [{"id": relation.plwn_id, "content": relation.name} for relation in SelectivePreferenceRelations.objects.all()]
+    relations = [{"id": relation.id, "content": relation.key} for relation in SelectionalPreferenceRelation.objects.all()]
 
     context = {
         'relations': relations,
diff --git a/unifier/views.py b/unifier/views.py
index 6f105c523c028d33f76f842e515863f5127862d5..307eb2027bcc376822f78c3f6d554e14285b7c45 100644
--- a/unifier/views.py
+++ b/unifier/views.py
@@ -86,6 +86,13 @@ def check_sysnet_hierarchy_constraints(synset_preference_ids, unified_frame_argu
     synset_ids_list = list(synset_ids_map)
     synset_ids_list.extend(predefined_synset_ids)
 
+    for predefined in unified_frame_argument.predefined.all():
+        pred_sel_pref = PredefinedSelectionalPreference.objects.get(id=predefined.pk)
+        if pred_sel_pref.name == 'ALL':
+            return {"succ": False, "conflict_hyponym": None,
+                    "conflict_hyperonym": None,
+                    "conflict_exists": "Wybrana preferencja selekcyjna konfliktuje z predefiniowanÄ… preferencjÄ… selekcyjnÄ… ALL."}
+
     for synset_preference_id in synset_preference_ids:
         conflict_hyponym, conflict_hyperonym, conflict_exists = synset_hierarchy_constraint_check(int(synset_preference_id),
                                                                                  set(synset_ids_list))
@@ -147,6 +154,7 @@ def save_bunch_of_preferences_base(frame_id, complement_id, predefined_preferenc
 
     return {'succ': True}
 
+
 @ajax_required
 @transaction.atomic
 def save_predefined_preference(request):
@@ -168,21 +176,25 @@ def save_predefined_preference_base(frame_id, complement_id, predefined_preferen
 
     predefined_synset_ids = []
     pred_sel_pref = PredefinedSelectionalPreference.objects.get(id=predefined_preference_id)
-    if pred_sel_pref.name == 'ALL' and len(unified_frame_argument.predefined.all()) > 0:
-        return {"succ": False, "conflict_hyponym": None,
+    if pred_sel_pref.name == 'ALL':
+        if len(unified_frame_argument.predefined.all()) > 0 or len(unified_frame_argument.synsets.all()) > 0 or \
+                len(unified_frame_argument.relations.all()) > 0:
+            return {"succ": False, "conflict_hyponym": None,
                                             "conflict_hyperonym": None,
                                             "conflict_exists": "Predefiniowana preferencja selekcyjna ALL może być dodana tylko, gdy nie na liście nie widnieją inne preferencje selekcyjne."}
+        else:
+            check_sysnet_hierarchy_constraints_ret = {"succ": True}
     else:
         get_predefined_preference_synsets([pred_sel_pref], predefined_synset_ids)
 
         check_sysnet_hierarchy_constraints_ret = check_sysnet_hierarchy_constraints(predefined_synset_ids, unified_frame_argument)
 
-        if check_sysnet_hierarchy_constraints_ret['succ'] is True:
-            unified_frame_argument.predefined.add(int(predefined_preference_id))
-            unified_frame_argument.save()
-            update_argument_preferences_count(unified_frame_argument)
+    if check_sysnet_hierarchy_constraints_ret['succ'] is True:
+        unified_frame_argument.predefined.add(int(predefined_preference_id))
+        unified_frame_argument.save()
+        update_argument_preferences_count(unified_frame_argument)
 
-        return check_sysnet_hierarchy_constraints_ret
+    return check_sysnet_hierarchy_constraints_ret
 
 
 @ajax_required
@@ -196,9 +208,10 @@ def save_relational_selectional_preference(request):
 
         unified_frame_argument = UnifiedFrameArgument.objects.get(unified_frame_id=int(frame_id),
                                                                   id=int(complement_id_from))
-        relational_selectional_preference = UnifiedRelationalSelectionalPreference(to_id=complement_id_to,
+        relational_selectional_preference, xx = UnifiedRelationalSelectionalPreference.objects.get_or_create(to_id=complement_id_to,
                                                                                    relation_id=relation_id)
         relational_selectional_preference.save()
+
         unified_frame_argument.relations.add(relational_selectional_preference)
         unified_frame_argument.save()