diff --git a/portal-impl/src/com/liferay/portal/util/PortalImpl.java b/portal-impl/src/com/liferay/portal/util/PortalImpl.java
index ccb5edb14416766202ce8f8c14cc516f73f169a0..eeb3d2950951308b8d30fbe9b24e8c92b507841e 100644
--- a/portal-impl/src/com/liferay/portal/util/PortalImpl.java
+++ b/portal-impl/src/com/liferay/portal/util/PortalImpl.java
@@ -7106,13 +7106,15 @@ public class PortalImpl implements Portal {
 			Validator.isNotNull(
 				PropsValues.SITES_FRIENDLY_URL_PAGE_NOT_FOUND)) {
 
-			redirect = PropsValues.SITES_FRIENDLY_URL_PAGE_NOT_FOUND;
+			redirect = _get18nErrorRedirect(
+				request, PropsValues.SITES_FRIENDLY_URL_PAGE_NOT_FOUND);
 		}
 		else if ((e instanceof NoSuchLayoutException) &&
 				 Validator.isNotNull(
 					 PropsValues.LAYOUT_FRIENDLY_URL_PAGE_NOT_FOUND)) {
 
-			redirect = PropsValues.LAYOUT_FRIENDLY_URL_PAGE_NOT_FOUND;
+			redirect = _get18nErrorRedirect(
+				request, PropsValues.LAYOUT_FRIENDLY_URL_PAGE_NOT_FOUND);
 		}
 		else if (PropsValues.LAYOUT_SHOW_HTTP_STATUS) {
 			DynamicServletRequest dynamicRequest = new DynamicServletRequest(
@@ -8644,6 +8646,19 @@ public class PortalImpl implements Portal {
 		return StringPool.SLASH.concat(LocaleUtil.toW3cLanguageId(languageId));
 	}
 
+	private String _get18nErrorRedirect(
+		HttpServletRequest httpServletRequest, String redirect) {
+
+		String i18nErrorPath = GetterUtil.getString(
+			httpServletRequest.getAttribute(WebKeys.I18N_ERROR_PATH));
+
+		if (Validator.isNull(i18nErrorPath)) {
+			return redirect;
+		}
+
+		return i18nErrorPath.concat(redirect);
+	}
+
 	private Map<Locale, String> _getAlternateURLs(
 			String canonicalURL, ThemeDisplay themeDisplay, Layout layout,
 			Set<Locale> availableLocales)