diff --git a/src/en/comicextra/build.gradle b/src/en/comicextra/build.gradle
index a8433e6ec..19f3911b8 100644
--- a/src/en/comicextra/build.gradle
+++ b/src/en/comicextra/build.gradle
@@ -5,7 +5,7 @@ ext {
     appName = 'Tachiyomi: ComicExtra'
     pkgNameSuffix = 'en.comicextra'
     extClass = '.ComicExtra'
-    extVersionCode = 3
+    extVersionCode = 4
     libVersion = '1.2'
 }
 
diff --git a/src/en/comicextra/src/eu/kanade/tachiyomi/extension/en/comicextra/ComicExtra.kt b/src/en/comicextra/src/eu/kanade/tachiyomi/extension/en/comicextra/ComicExtra.kt
index 4380bdc56..5dcc280ba 100644
--- a/src/en/comicextra/src/eu/kanade/tachiyomi/extension/en/comicextra/ComicExtra.kt
+++ b/src/en/comicextra/src/eu/kanade/tachiyomi/extension/en/comicextra/ComicExtra.kt
@@ -1,13 +1,14 @@
 package eu.kanade.tachiyomi.extension.en.comicextra
 
 import eu.kanade.tachiyomi.network.GET
-import eu.kanade.tachiyomi.network.asObservableSuccess
 import eu.kanade.tachiyomi.source.model.FilterList
 import eu.kanade.tachiyomi.source.model.Page
 import eu.kanade.tachiyomi.source.model.SChapter
 import eu.kanade.tachiyomi.source.model.SManga
 import eu.kanade.tachiyomi.source.online.ParsedHttpSource
 import eu.kanade.tachiyomi.util.asJsoup
+import okhttp3.OkHttpClient
+import okhttp3.Request
 import okhttp3.Response
 import org.jsoup.nodes.Document
 import org.jsoup.nodes.Element
@@ -26,6 +27,8 @@ class ComicExtra : ParsedHttpSource() {
 
     override val supportsLatest = true
 
+    override val client: OkHttpClient = network.cloudflareClient
+
     private val datePattern = Pattern.compile("(\\d+) days? ago")
 
     override fun popularMangaSelector() = "div.cartoon-box"
@@ -144,30 +147,19 @@ class ComicExtra : ParsedHttpSource() {
         return date.time
     }
 
+    override fun pageListRequest(chapter: SChapter): Request {
+        return GET(baseUrl + chapter.url + "/full", headers)
+    }
+
     override fun pageListParse(document: Document): List<Page> {
         val pages = mutableListOf<Page>()
-        val urls = document.select("select.full-select[name=page_select] > option")
 
-        for (element in urls) {
-            val url = element.attr("value")
-            if (url.isEmpty()) continue
-            pages.add(Page(index = Integer.valueOf(element.text()) - 1, url = url))
+        document.select("img.chapter_img").forEachIndexed { i, img ->
+            pages.add(Page(i, "", img.attr("abs:src")))
         }
         return pages
     }
 
-    override fun imageUrlRequest(page: Page) = GET(page.url)
-
-    override fun fetchImageUrl(page: Page) = client.newCall(imageUrlRequest(page))
-            .asObservableSuccess()
-            .map { realImageUrlParse(it) }!!
-
-    private fun realImageUrlParse(response: Response) = with(response.asJsoup()) {
-        getElementById("main_img").attr("src")
-    }!!
-
-    override fun imageUrlParse(response: Response) = throw UnsupportedOperationException("Unused method was called somehow!")
-
     override fun imageUrlParse(document: Document) = throw UnsupportedOperationException("Unused method was called somehow!")
 }