diff --git a/Classes/Controller/ListByCategoryController.php b/Classes/Controller/ListByCategoryController.php
index 5d63356001c67abbfd3351ac20c31b19c4865b74..677a1b1f770a4f16aa0ed8ea972649e8004b1c88 100644
--- a/Classes/Controller/ListByCategoryController.php
+++ b/Classes/Controller/ListByCategoryController.php
@@ -102,7 +102,7 @@ class ListByCategoryController extends AbstractController {
 		$numberOfPages = ($newsPerPage <= 0 ? 0 : ceil($newsCount / $newsPerPage));
 
 		$headerSet = FALSE;
-		$offset = $this->calculatePaginationOffset($currentPageBrowserPage);
+		$offset = $this->calculatePaginationOffset($currentPageBrowserPage, $newsPerPage);
 
 		$news = $this->newsRepository->findAllSortedNewsByCategories(
 			$categoryUids, $newsPerPage, $offset, $this->settings['sortBy'], $tagUids, $startTime, $endTime
diff --git a/Classes/Controller/OverviewController.php b/Classes/Controller/OverviewController.php
index c5132a81f48e941a34f6064d2900c03309c09c26..00fada20cc522b274ae140b70741d9d3d2e05689 100644
--- a/Classes/Controller/OverviewController.php
+++ b/Classes/Controller/OverviewController.php
@@ -239,7 +239,7 @@ class OverviewController extends AbstractController {
 		$newsCount = $this->newsRepository->newsCountByCategories($categoryIds, $tagIds, $startTime, $endTime);
 		$numberOfPages = ($newsLimitPerCategory <= 0 ? 0 : ceil($newsCount / $newsLimitPerCategory));
 		// Redo this function, until one variable get the amount of newsLimitPerTag. Reduces the amount of ajax calls. Needed because of languagevisibility.
-		if ($maxNewsPerCategory < $newsLimitPerCategory && count($allNews) < $newsLimitPerCategory) {
+		if ($maxNewsPerCategory < $newsLimitPerCategory && \count($allNews) < $newsLimitPerCategory) {
 			$nextPage = $currentPageBrowserPage + 1;
 			if ($nextPage <= $numberOfPages) {
 				$this->setPageBrowserPage($nextPage);
@@ -445,13 +445,11 @@ class OverviewController extends AbstractController {
 		$this->view->assign('selectedTag', $selectedTag);
 		$this->view->assign('selectedCategory', $selectedCategory);
 
-		$offset = $this->calculatePaginationOffset($currentPageBrowserPage);
-
 		$newsPerPage = (int) $this->settings['newsLimit'];
+		$offset = $this->calculatePaginationOffset($currentPageBrowserPage, $newsPerPage);
 
 		$startTime = (int) $this->settings['starttime'];
 		$endTime = (int) $this->settings['endtime'];
-
 		if ($this->settings['onlyNewsWithinThisPageSection']) {
 			/** @noinspection PhpUndefinedMethodInspection */
 			$categories = $this->categoryRepository->findByPid($GLOBALS['TSFE']->id);
@@ -511,7 +509,7 @@ class OverviewController extends AbstractController {
 		$numberOfPages = ($newsPerPage <= 0 ? 0 : ceil($newsCount / $newsPerPage));
 
 		// Redo this function, until one variable get the amount of newsLimitPerTag. Reduces the amount of ajax calls. Needed because of languagevisibility.
-		if (count($newsMetaData) < $newsPerPage) {
+		if (\count($newsMetaData) < ($newsPerPage - 1)) {
 			$nextPage = $currentPageBrowserPage + 1;
 			if ($nextPage <= $numberOfPages) {
 				$this->setPageBrowserPage($nextPage);
@@ -542,10 +540,6 @@ class OverviewController extends AbstractController {
 	 * @return void
 	 */
 	protected function setPageBrowserPage($newPage) {
-		if (!isset($_GET['tx_sgnews_pagebrowser']['currentPage'])) {
-			return;
-		}
-
 		$_GET['tx_sgnews_pagebrowser']['currentPage'] = $newPage;
 	}
 }