diff --git a/core/src/main/java/org/apache/karaf/webconsole/core/util/LinkUtils.java b/core/src/main/java/org/apache/karaf/webconsole/core/util/LinkUtils.java
index 2a894f3..f88b0ce 100644
--- a/core/src/main/java/org/apache/karaf/webconsole/core/util/LinkUtils.java
+++ b/core/src/main/java/org/apache/karaf/webconsole/core/util/LinkUtils.java
@@ -20,6 +20,7 @@
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.protocol.http.RequestUtils;
 import org.apache.wicket.request.cycle.RequestCycle;
 
 /**
@@ -54,13 +55,13 @@
      */
     public static boolean isActiveTrail(Link<?> link) {
         if (link instanceof BookmarkablePageLink) {
+            RequestCycle requestCycle = RequestCycle.get();
+            String requestPath = requestCycle.getRequest().getUrl().toString();
             Class<? extends Page> pageClass = ((BookmarkablePageLink<?>) link).getPageClass();
 
-            RequestCycle requestCycle = RequestCycle.get();
-            String linkPath = (requestCycle.urlFor(pageClass, null) + "").replace("../", "");
+            String linkPath = requestCycle.urlFor(pageClass, null).toString();
 
-            String requestPath = requestCycle.getRequest().getUrl().toString();
-            return requestPath.contains(linkPath);
+            return requestPath.contains(RequestUtils.toAbsolutePath(requestPath, linkPath));
         }
         return false;
     }
