diff --git a/src/ru/libmanga/build.gradle b/src/ru/libmanga/build.gradle
index 7ea0aac5d..c33e750c8 100644
--- a/src/ru/libmanga/build.gradle
+++ b/src/ru/libmanga/build.gradle
@@ -5,7 +5,7 @@ ext {
     extName = 'MangaLib'
     pkgNameSuffix = 'ru.libmanga'
     extClass = '.LibManga'
-    extVersionCode = 38
+    extVersionCode = 39
     libVersion = '1.2'
 }
 
diff --git a/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt b/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt
index 3d705051c..c521182ef 100644
--- a/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt
+++ b/src/ru/libmanga/src/eu/kanade/tachiyomi/extension/ru/libmanga/LibManga.kt
@@ -8,10 +8,12 @@ import com.github.salomonbrys.kotson.array
 import com.github.salomonbrys.kotson.get
 import com.github.salomonbrys.kotson.int
 import com.github.salomonbrys.kotson.nullArray
+import com.github.salomonbrys.kotson.nullInt
 import com.github.salomonbrys.kotson.nullString
 import com.github.salomonbrys.kotson.obj
 import com.github.salomonbrys.kotson.string
 import com.github.salomonbrys.kotson.toMap
+import com.google.gson.JsonArray
 import com.google.gson.JsonElement
 import com.google.gson.JsonParser
 import eu.kanade.tachiyomi.network.GET
@@ -198,57 +200,72 @@ class LibManga : ConfigurableSource, HttpSource() {
         val data = jsonParser.parse(dataStr).obj
         val chaptersList = data["chapters"]["list"].nullArray
         val slug = data["manga"]["slug"].string
-        val teams = data["chapters"]["branches"].array.reversed()
+        val branches = data["chapters"]["branches"].array.reversed()
         val sortingList = preferences.getString(SORTING_PREF, "ms_mixing")
-        var chapters: List<SChapter>? = null
 
-        if (teams.isNotEmpty() && !sortingList.equals("ms_mixing")) {
-            when (sortingList) {
-                "ms_combining" -> {
-                    val tempChaptersList = mutableListOf<SChapter>()
-                    for (currentList in teams.withIndex()) {
-                        val teamId = teams[currentList.index]["id"].int
-                        chapters = chaptersList
-                            ?.filter { it["branch_id"].int == teamId }
-                            ?.map { chapterFromElement(it, slug, teamId) }
-                        chapters?.let { tempChaptersList.addAll(it) }
-                    }
-                    chapters = tempChaptersList
-                }
-                "ms_largest" -> {
-                    val sizesChaptersLists = mutableListOf<Int>()
-                    for (currentList in teams.withIndex()) {
-                        val teamId = teams[currentList.index]["id"].int
-                        val chapterSize = chaptersList?.filter { it["branch_id"].int == teamId }!!.size
-                        sizesChaptersLists.add(chapterSize)
-                    }
-                    val max = sizesChaptersLists.indexOfFirst { it == sizesChaptersLists.maxOrNull() ?: 0 }
-                    val teamId = teams[max]["id"].int
-                    chapters = chaptersList?.filter { it["branch_id"].int == teamId }?.map { chapterFromElement(it, slug, teamId) }
-                }
-                "ms_active" -> {
-                    for (currentList in teams.withIndex()) {
-                        val isActive = teams[currentList.index]["teams"].array
-                        for (currentListInternal in isActive.withIndex()) {
-                            if (isActive[currentListInternal.index]["is_active"].int == 1) {
-                                val teamId = teams[currentList.index]["id"].int
-                                chapters = chaptersList?.filter { it["branch_id"].int == teamId }
-                                    ?.map { chapterFromElement(it, slug, teamId) }
-                                break
-                            }
-                        }
-                    }
-                    chapters ?: throw Exception("Активный перевод не назначен на сайте")
-                }
-            }
+        val chapters: List<SChapter>? = if (branches.isNotEmpty() && !sortingList.equals("ms_mixing")) {
+            sortChaptersByTranslator(sortingList, chaptersList, slug, branches)
         } else {
-            chapters = chaptersList?.map { chapterFromElement(it, slug) }
+            chaptersList
+                ?.filter { it["status"].nullInt != 2 }
+                ?.map { chapterFromElement(it, sortingList, slug) }
         }
 
         return chapters ?: emptyList()
     }
 
-    private fun chapterFromElement(chapterItem: JsonElement, slug: String, teamIdParam: Int? = null): SChapter {
+    private fun sortChaptersByTranslator
+    (sortingList: String?, chaptersList: JsonArray?, slug: String, branches: List<JsonElement>): List<SChapter>? {
+        var chapters: List<SChapter>? = null
+        when (sortingList) {
+            "ms_combining" -> {
+                val tempChaptersList = mutableListOf<SChapter>()
+                for (currentBranch in branches.withIndex()) {
+                    val teamId = branches[currentBranch.index]["id"].int
+                    chapters = chaptersList
+                        ?.filter { it["branch_id"].int == teamId && it["status"].nullInt != 2 }
+                        ?.map { chapterFromElement(it, sortingList, slug, teamId, branches) }
+                    chapters?.let { tempChaptersList.addAll(it) }
+                }
+                chapters = tempChaptersList
+            }
+            "ms_largest" -> {
+                val sizesChaptersLists = mutableListOf<Int>()
+                for (currentBranch in branches.withIndex()) {
+                    val teamId = branches[currentBranch.index]["id"].int
+                    val chapterSize = chaptersList
+                        ?.filter { it["branch_id"].int == teamId }!!.size
+                    sizesChaptersLists.add(chapterSize)
+                }
+                val max = sizesChaptersLists.indexOfFirst { it == sizesChaptersLists.maxOrNull() ?: 0 }
+                val teamId = branches[max]["id"].int
+
+                chapters = chaptersList
+                    ?.filter { it["branch_id"].int == teamId && it["status"].nullInt != 2 }
+                    ?.map { chapterFromElement(it, sortingList, slug, teamId, branches) }
+            }
+            "ms_active" -> {
+                for (currentBranch in branches.withIndex()) {
+                    val teams = branches[currentBranch.index]["teams"].array
+                    for (currentTeam in teams.withIndex()) {
+                        if (teams[currentTeam.index]["is_active"].int == 1) {
+                            val teamId = branches[currentBranch.index]["id"].int
+                            chapters = chaptersList
+                                ?.filter { it["branch_id"].int == teamId && it["status"].nullInt != 2 }
+                                ?.map { chapterFromElement(it, sortingList, slug, teamId, branches) }
+                            break
+                        }
+                    }
+                }
+                chapters ?: throw Exception("Активный перевод не назначен на сайте")
+            }
+        }
+
+        return chapters
+    }
+
+    private fun chapterFromElement
+    (chapterItem: JsonElement, sortingList: String?, slug: String, teamIdParam: Int? = null, branches: List<JsonElement>? = null): SChapter {
         val chapter = SChapter.create()
 
         val volume = chapterItem["chapter_volume"].int
@@ -262,13 +279,34 @@ class LibManga : ConfigurableSource, HttpSource() {
         val nameChapter = chapterItem["chapter_name"].nullString
         val fullNameChapter = "Том $volume. Глава $number"
 
-        chapter.scanlator = chapterItem["username"].string
+        if (!sortingList.equals("ms_mixing")) {
+            chapter.scanlator = branches?.let { getScanlatorTeamName(it, chapterItem) } ?: chapterItem["username"].string
+        }
         chapter.name = if (nameChapter.isNullOrBlank()) fullNameChapter else "$fullNameChapter - $nameChapter"
         chapter.date_upload = SimpleDateFormat("yyyy-MM-dd", Locale.US)
             .parse(chapterItem["chapter_created_at"].string.substringBefore(" "))?.time ?: 0L
+
         return chapter
     }
 
+    private fun getScanlatorTeamName(branches: List<JsonElement>, chapterItem: JsonElement): String? {
+        var scanlatorData: String? = null
+        for (currentBranch in branches.withIndex()) {
+            val branch = branches[currentBranch.index]
+            val teams = branch["teams"].array
+            if (chapterItem["branch_id"].int == branch["id"].int) {
+                for (currentTeam in teams.withIndex()) {
+                    val team = teams[currentTeam.index]
+                    val scanlatorId = chapterItem["chapter_scanlator_id"].int
+                    scanlatorData = if ((scanlatorId == team["id"].int) ||
+                        (scanlatorId == 0 && team["is_active"].int == 1)
+                    ) team["name"].string else branch["teams"][0]["name"].string
+                }
+            }
+        }
+        return scanlatorData
+    }
+
     override fun prepareNewChapter(chapter: SChapter, manga: SManga) {
         """Глава\s(\d+)""".toRegex().find(chapter.name)?.let {
             val number = it.groups[1]?.value!!
@@ -554,7 +592,6 @@ class LibManga : ConfigurableSource, HttpSource() {
         SearchFilter("детектив", "40"),
         SearchFilter("дзёсэй", "41"),
         SearchFilter("драма", "43"),
-        SearchFilter("ёнкома", "75"),
         SearchFilter("игра", "44"),
         SearchFilter("исекай", "79"),
         SearchFilter("история", "45"),