diff --git a/public/templates/noscript/category.tpl b/public/templates/noscript/category.tpl
index d0c7fa612b..ccfeffd740 100644
--- a/public/templates/noscript/category.tpl
+++ b/public/templates/noscript/category.tpl
@@ -18,4 +18,11 @@
 				</div>
 			</li>
 			<!-- END topics -->
-		</ul>
\ No newline at end of file
+		</ul>
+		<div class="text-center">
+			<ul class="pagination">
+				<!-- BEGIN pages -->
+				<li <!-- IF pages.active -->class="active"<!-- ENDIF pages.active -->><a href="?page={pages.page}">{pages.page}</a></li>
+				<!-- END pages -->
+			</ul>
+		</div>
\ No newline at end of file
diff --git a/src/routes/api.js b/src/routes/api.js
index 0ddbc04582..301c2ea671 100644
--- a/src/routes/api.js
+++ b/src/routes/api.js
@@ -266,8 +266,8 @@ var path = require('path'),
 						return next(err);
 					}
 
-					var start = (page - 1) * settings.topicsPerPage;
-					var end = start + settings.topicsPerPage - 1;
+					var start = (page - 1) * settings.topicsPerPage,
+						end = start + settings.topicsPerPage - 1;
 
 					categoryTools.privileges(req.params.id, uid, function(err, privileges) {
 						if (!err && privileges.read) {
diff --git a/src/webserver.js b/src/webserver.js
index ed33ff4316..c17ac5f7b9 100644
--- a/src/webserver.js
+++ b/src/webserver.js
@@ -672,7 +672,9 @@ module.exports.server = server;
 		});
 
 		app.get('/category/:category_id/:slug?', function (req, res, next) {
-			var cid = req.params.category_id;
+			var cid = req.params.category_id,
+				page = req.query.page || 1,
+				uid = req.user ? req.user.uid : 0;
 
 			async.waterfall([
 				function(next) {
@@ -689,15 +691,23 @@ module.exports.server = server;
 					});
 				},
 				function (next) {
-					categories.getCategoryById(cid, 0, -1, 0, function (err, categoryData) {
+					user.getSettings(uid, function(err, settings) {
+						if (err) {
+							return next(err);
+						}
+
+						var start = (page - 1) * settings.topicsPerPage,
+							end = start + settings.topicsPerPage - 1;
+						categories.getCategoryById(cid, start, end, 0, function (err, categoryData) {
 
-						if (categoryData) {
-							if (parseInt(categoryData.disabled, 10) === 1) {
-								return next(new Error('Category disabled'), null);
+							if (categoryData) {
+								if (parseInt(categoryData.disabled, 10) === 1) {
+									return next(new Error('Category disabled'), null);
+								}
 							}
-						}
 
-						next(err, categoryData);
+							next(err, categoryData);
+						});
 					});
 				},
 				function (categoryData, next) {
@@ -736,7 +746,7 @@ module.exports.server = server;
 					}, function (err, header) {
 						next(err, {
 							header: header,
-							categories: categoryData
+							topics: categoryData
 						});
 					});
 				}
@@ -749,8 +759,8 @@ module.exports.server = server;
 					}
 				}
 
-				if(data.categories.link) {
-					return res.redirect(data.categories.link);
+				if(data.topics.link) {
+					return res.redirect(data.topics.link);
 				}
 
 				var category_url = cid + (req.params.slug ? '/' + req.params.slug : '');
@@ -759,11 +769,22 @@ module.exports.server = server;
 					category_url += '?' + queryString;
 				}
 
-				res.send(
-					data.header +
-					'\n\t<noscript>\n' + templates['noscript/header'] + templates['noscript/category'].parse(data.categories) + '\n\t</noscript>' +
-					'\n\t' + app.create_route('category/' + category_url) + templates.footer
-				);
+				// Paginator for noscript
+				data.topics.pages = [];
+				for(var x=1;x<=data.topics.pageCount;x++) {
+					data.topics.pages.push({
+						page: x,
+						active: x === parseInt(page, 10)
+					});
+				}
+
+				translator.translate(templates['noscript/category'].parse(data.topics), function(translatedHTML) {
+					res.send(
+						data.header +
+						'\n\t<noscript>\n' + templates['noscript/header'] + translatedHTML + '\n\t</noscript>' +
+						'\n\t' + app.create_route('category/' + category_url) + templates.footer
+					);
+				});
 			});
 		});