diff --git a/frontend/src/components/unification/Unification/LexicalUnitEdit.vue b/frontend/src/components/unification/Unification/LexicalUnitEdit.vue
index 27b35bd2c40b1ab36f66598e139f10a15772ae35..f841afccb14992c97cff1f1a3c20becb1c527695 100644
--- a/frontend/src/components/unification/Unification/LexicalUnitEdit.vue
+++ b/frontend/src/components/unification/Unification/LexicalUnitEdit.vue
@@ -1049,6 +1049,9 @@ Object.assign(LexicalUnitEdit, {
       }
       return slowal_frame_stastuses;
     },
+    isReadOnly() {
+        return this.readOnly || (this.unified_frame.status === 'G' && !this.isSuperLeksykograf());
+    },
     hideLexicalUnits() {
       this.lexicalUnitsVisible = false;
     },
@@ -1187,7 +1190,7 @@ export default LexicalUnitEdit;
 <template>
     <div class="col h-100 px-0 pt-0 pb-0 overflow-auto" id="semantics-frames-pane">
       <div :id="'semantics-unified-frame-pane' + (readOnly ? '-preview' : '')" class="col w-100 p-0 overflow-auto">
-        <table v-if="!readOnly && !isReadOnlyForSuperLeksykograf()" class="table-button-menu sticky-top" cellspacing="1">
+        <table v-if="!isReadOnly() && !isReadOnlyForSuperLeksykograf()" class="table-button-menu sticky-top" cellspacing="1">
           <tr style="background-color: white;">
             <td class="table-button-menu-td" id="change-title" @click="changeTitle" style="padding: 10px 15px 10px 15px; color: #000000;">Zmień nazwę</td>
             <td class="table-button-menu-td" id="add-arg" @click="addArgument" style="padding: 10px 15px 10px 15px; color: #000000;">Dodaj argum.</td>
@@ -1213,7 +1216,7 @@ export default LexicalUnitEdit;
           </tr>
         </table>
         
-        <table v-if="!readOnly && isReadOnlyForSuperLeksykograf()" class="table-button-menu sticky-top" style="width: 100px;" cellspacing="1">
+        <table v-if="!isReadOnly() && isReadOnlyForSuperLeksykograf()" class="table-button-menu sticky-top" style="width: 100px;" cellspacing="1">
           <tr style="background-color: white;">
             <td v-if="frames.length == 0 || isSuperLeksykograf()" id="delete-frame-ro" style="padding: 10px 15px 10px 15px; color: #000000;" @click="deleteUnifiedFrames">Usuń ramę</td>
           </tr>
@@ -1327,7 +1330,7 @@ export default LexicalUnitEdit;
       </div>
       </div>
       <div :id="'semantics-slowal-frames-pane' + (readOnly ? '-preview' : '')" class="col w-100 p-0 overflow-auto">
-        <table v-if="!readOnly && unified_frame.id && !isReadOnlyForSuperLeksykograf()" class="table-button-menu sticky-top" cellspacing="1">
+        <table v-if="!isReadOnly() && unified_frame.id && !isReadOnlyForSuperLeksykograf()" class="table-button-menu sticky-top" cellspacing="1">
           <tr style="background-color: white;">
             <td id="wrong-frame" class="table-button-menu-td" style="padding: 10px 15px 10px 15px; color: #000000;" @click="!this.isSuperLeksykograf() ? change_slowal_frame_status('B') : this.active_slowal_frame && this.active_slowal_frame.status === 'B' ? slowal_frame_status_change_with_confirmation('frame_confirm_invalid') : change_slowal_frame_status('B')">{{createSlowalBadStatusButtonLabel()}}</td>
             <td id="hide-slowal-frame" style="padding: 10px 15px 10px 15px; color: #000000;">
@@ -1371,7 +1374,7 @@ export default LexicalUnitEdit;
                                 @meaning-lu-selected="meaningLuSelected"
                             ></meaning-component>
                         </div>
-                        <div v-if="!readOnly && !isReadOnlyForSuperLeksykograf()" class="col px-0" style="
+                        <div v-if="!isReadOnly() && !isReadOnlyForSuperLeksykograf()" class="col px-0" style="
                               max-width: 15px;">
                            <div class="close" style="
                               width: 15px;
@@ -1397,7 +1400,7 @@ export default LexicalUnitEdit;
                         </div>
                       </div>
                   </div>
-                  <div v-if="!readOnly && !isReadOnlyForSuperLeksykograf()" class="col pl-0 pt-4" style="max-width: 60px;">
+                  <div v-if="!isReadOnly() && !isReadOnlyForSuperLeksykograf()" class="col pl-0 pt-4" style="max-width: 60px;">
                     <div class="row"></div>
                     <div class="row">
                         <div class="col">
@@ -1436,7 +1439,7 @@ export default LexicalUnitEdit;
           />
         </div>
     </div>
-    <div v-if="!readOnly" class="col h-100 px-1 pt-0 pb-0 overflow-auto" style="padding-left: 0px!important; padding-right: 0px!important;" id="semantics-schemata-pane">
+    <div class="col h-100 px-1 pt-0 pb-0 overflow-auto" style="padding-left: 0px!important; padding-right: 0px!important;" id="semantics-schemata-pane">
       <ul class="nav nav-pills nav-justified p-1" id="entryTabs" role="tablist">
         <li
           v-for="tab in right_pane_tabs"
@@ -1459,7 +1462,7 @@ export default LexicalUnitEdit;
                 @schemata-selected="schemataSelected"
               />
       </div>
-      <div v-if="right_pane_tab === 'frame_preview'" class="overflow-hidden" style="height: calc(100% - 43px)">
+      <div v-if="!isReadOnly() && right_pane_tab === 'frame_preview'" class="overflow-hidden" style="height: calc(100% - 43px)">
         <unification-frame-preview
             :key="currentPreviewedUnifiedFrameId"
             :lexicalUnitEditComponent="LexicalUnitEdit"
@@ -1468,6 +1471,6 @@ export default LexicalUnitEdit;
             @change-preview-to-edit="swapUnifiedFrames"
             :forceRefresh="internalForceRefresh" />
       </div>
-      <div :class="right_pane_tab !== 'notes' && 'd-none'" id="notes-component"></div>
+      <div v-if="!isReadOnly()" :class="right_pane_tab !== 'notes' && 'd-none'" id="notes-component"></div>
     </div>
 </template>
diff --git a/unifier/views.py b/unifier/views.py
index a125bc240d0d1742593adebfe695641591f432ac..6f105c523c028d33f76f842e515863f5127862d5 100644
--- a/unifier/views.py
+++ b/unifier/views.py
@@ -89,17 +89,18 @@ def check_sysnet_hierarchy_constraints(synset_preference_ids, unified_frame_argu
     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))
-        if conflict_hyponym is not None or conflict_hyperonym is not None or conflict_exists is not None:
-
+        if conflict_hyponym is None and conflict_hyperonym is None and conflict_exists is None:
+            return {"succ": True}
+        else:
             conflict_exists_lu_str = conflict_lu_to_str(conflict_exists)
             conflict_hyponym_lu_str = conflict_lu_to_str(conflict_hyponym)
             conflict_hyperonym_lu_str = conflict_lu_to_str(conflict_hyperonym)
 
-            return {"succ": False, "conflict_hyponym": conflict_hyponym_lu_str,
+            ret = {"succ": False, "conflict_hyponym": conflict_hyponym_lu_str,
                                    "conflict_hyperonym": conflict_hyperonym_lu_str,
                                    "conflict_exists": "Wybrana preferencja selekcyjna nie mogła zostać zapisana ponieważ widnieje już na liście preferencji selekcyjnych: " + conflict_exists_lu_str if conflict_exists_lu_str is not None else None}
 
-    return {"succ": True}
+    return ret
 
 
 def conflict_lu_to_str(conflict_lu):