diff --git a/portal-impl/src/com/liferay/portlet/wiki/service/impl/WikiPageServiceImpl.java b/portal-impl/src/com/liferay/portlet/wiki/service/impl/WikiPageServiceImpl.java
index 9afc9af102303dcb25a690e430706d66649cdfa9..6e74ed2de5786a7b8adcfa0b7e5bf46e49ea0248 100644
--- a/portal-impl/src/com/liferay/portlet/wiki/service/impl/WikiPageServiceImpl.java
+++ b/portal-impl/src/com/liferay/portlet/wiki/service/impl/WikiPageServiceImpl.java
@@ -14,6 +14,7 @@
 
 package com.liferay.portlet.wiki.service.impl;
 
+import com.liferay.portal.kernel.dao.orm.QueryDefinition;
 import com.liferay.portal.kernel.exception.PortalException;
 import com.liferay.portal.kernel.exception.SystemException;
 import com.liferay.portal.kernel.language.LanguageUtil;
@@ -375,7 +376,15 @@ public class WikiPageServiceImpl extends WikiPageServiceBaseImpl {
 			return pages.get(0);
 		}
 		else {
-			throw new NoSuchPageException();
+			StringBundler sb = new StringBundler(5);
+
+			sb.append("{nodeId=");
+			sb.append(nodeId);
+			sb.append(", title=");
+			sb.append(title);
+			sb.append("}");
+
+			throw new NoSuchPageException(sb.toString());
 		}
 	}
 
@@ -404,7 +413,7 @@ public class WikiPageServiceImpl extends WikiPageServiceBaseImpl {
 		throws PortalException, SystemException {
 
 		WikiPagePermission.check(
-			getPermissionChecker(), nodeId, title, ActionKeys.VIEW);
+			getPermissionChecker(), nodeId, title, version, ActionKeys.VIEW);
 
 		return wikiPageLocalService.getPage(nodeId, title, version);
 	}
@@ -428,6 +437,27 @@ public class WikiPageServiceImpl extends WikiPageServiceBaseImpl {
 		}
 	}
 
+	@Override
+	public List<WikiPage> getPages(
+			long groupId, long nodeId, boolean head, long userId,
+			boolean includeOwner, int status, int start, int end,
+			OrderByComparator obc)
+		throws PortalException, SystemException {
+
+		WikiNodePermission.check(
+			getPermissionChecker(), nodeId, ActionKeys.VIEW);
+
+		QueryDefinition queryDefinition = new QueryDefinition(
+			status, userId, includeOwner);
+
+		queryDefinition.setEnd(end);
+		queryDefinition.setOrderByComparator(obc);
+		queryDefinition.setStart(start);
+
+		return wikiPageFinder.filterFindByG_N_H_S(
+			groupId, nodeId, head, queryDefinition);
+	}
+
 	@Override
 	public List<WikiPage> getPages(
 			long groupId, long userId, long nodeId, int status, int start,
@@ -460,6 +490,22 @@ public class WikiPageServiceImpl extends WikiPageServiceBaseImpl {
 			groupId, nodeId, head, WorkflowConstants.STATUS_APPROVED);
 	}
 
+	@Override
+	public int getPagesCount(
+			long groupId, long nodeId, boolean head, long userId,
+			boolean includeOwner, int status)
+		throws PortalException, SystemException {
+
+		WikiNodePermission.check(
+			getPermissionChecker(), nodeId, ActionKeys.VIEW);
+
+		QueryDefinition queryDefinition = new QueryDefinition(
+			status, userId, includeOwner);
+
+		return wikiPageFinder.filterCountByG_N_H_S(
+			groupId, nodeId, head, queryDefinition);
+	}
+
 	@Override
 	public int getPagesCount(long groupId, long userId, long nodeId, int status)
 		throws PortalException, SystemException {
