diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java b/src/main/java/com/gitblit/wicket/GitBlitWebApp.java
index 0c97861..d19630c 100644
--- a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java
+++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp.java
@@ -175,9 +175,9 @@
 
 		// setup the standard gitweb-ish urls
 		mount("/repositories", RepositoriesPage.class);
-		mount("/overview", OverviewPage.class, "r", "h");
+		mount("/overview", OverviewPage.class, "r");
 		mount("/summary", SummaryPage.class, "r");
-		mount("/reflog", ReflogPage.class, "r", "h");
+		mount("/reflog", ReflogPage.class, "r");
 		mount("/commits", LogPage.class, "r", "h");
 		mount("/log", LogPage.class, "r", "h");
 		mount("/tags", TagsPage.class, "r");
diff --git a/src/main/java/com/gitblit/wicket/pages/BlamePage.java b/src/main/java/com/gitblit/wicket/pages/BlamePage.java
index c2280a2..3c850f2 100644
--- a/src/main/java/com/gitblit/wicket/pages/BlamePage.java
+++ b/src/main/java/com/gitblit/wicket/pages/BlamePage.java
@@ -235,6 +235,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return TreePage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java b/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java
index 27678ec..9cc3eae 100644
--- a/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java
@@ -82,6 +82,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return TreePage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/BlobPage.java b/src/main/java/com/gitblit/wicket/pages/BlobPage.java
index e84056b..3c244f9 100644
--- a/src/main/java/com/gitblit/wicket/pages/BlobPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/BlobPage.java
@@ -224,6 +224,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return TreePage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java b/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
index 71a5ea6..d827c44 100644
--- a/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
@@ -197,6 +197,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return LogPage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/CommitPage.java b/src/main/java/com/gitblit/wicket/pages/CommitPage.java
index 6fadec5..072bb20 100644
--- a/src/main/java/com/gitblit/wicket/pages/CommitPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/CommitPage.java
@@ -248,6 +248,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return LogPage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/DocPage.java b/src/main/java/com/gitblit/wicket/pages/DocPage.java
index 567c6fb..5ed9c40 100644
--- a/src/main/java/com/gitblit/wicket/pages/DocPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/DocPage.java
@@ -102,6 +102,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return DocsPage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/DocsPage.java b/src/main/java/com/gitblit/wicket/pages/DocsPage.java
index 97b1604..8be9a57 100644
--- a/src/main/java/com/gitblit/wicket/pages/DocsPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/DocsPage.java
@@ -167,4 +167,10 @@
 	protected String getPageName() {
 		return getString("gb.docs");
 	}
+
+	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
 }
diff --git a/src/main/java/com/gitblit/wicket/pages/HistoryPage.java b/src/main/java/com/gitblit/wicket/pages/HistoryPage.java
index f7f188d..3021cb3 100644
--- a/src/main/java/com/gitblit/wicket/pages/HistoryPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/HistoryPage.java
@@ -67,6 +67,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return TreePage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/LogPage.java b/src/main/java/com/gitblit/wicket/pages/LogPage.java
index 092f719..411d7ed 100644
--- a/src/main/java/com/gitblit/wicket/pages/LogPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/LogPage.java
@@ -69,4 +69,10 @@
 	protected String getPageName() {
 		return getString("gb.log");
 	}
+
+	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
 }
diff --git a/src/main/java/com/gitblit/wicket/pages/MetricsPage.java b/src/main/java/com/gitblit/wicket/pages/MetricsPage.java
index 7ae4e4e..96113b0 100644
--- a/src/main/java/com/gitblit/wicket/pages/MetricsPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/MetricsPage.java
@@ -61,24 +61,24 @@
 					MessageFormat.format(getString("gb.branchStats"), metricsTotal.count,
 							metricsTotal.tag, getTimeUtils().duration(metricsTotal.duration))));
 		}
-		
+
 		Charts charts =  new Flotr2Charts();
-	
+
 		add(WicketUtils.newBlankImage("commitsChart"));
 		add(WicketUtils.newBlankImage("dayOfWeekChart"));
 		add(WicketUtils.newBlankImage("authorsChart"));
-			
+
 		createLineChart(charts, "commitsChart", metrics);
 		createBarChart(charts, "dayOfWeekChart", getDayOfWeekMetrics(r, objectId));
 		createPieChart(charts, "authorsChart", getAuthorMetrics(r, objectId));
-		
+
 		add(new HeaderContributor(charts));
 
 	}
 
 	private void createLineChart(Charts charts, String id, List<Metric> metrics) {
 		if ((metrics != null) && (metrics.size() > 0)) {
-			
+
 			Chart chart = charts.createLineChart(id, "", "day",
 					getString("gb.commits"));
 			SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
@@ -102,22 +102,22 @@
 					chart.addHighlight(date, (int)metric.count);
 				}
 			}
-			charts.addChart(chart);	
+			charts.addChart(chart);
 		}
 	}
-	
+
 	private void createPieChart(Charts charts, String id, List<Metric> metrics) {
 		if ((metrics != null) && (metrics.size() > 0)) {
-			
+
 			Chart chart = charts.createPieChart(id, "", "day",
 					getString("gb.commits"));
 			for (Metric metric : metrics) {
 				chart.addValue(metric.name, (int)metric.count);
 			}
-			charts.addChart(chart);	
+			charts.addChart(chart);
 		}
 	}
-	
+
 	private void createBarChart(Charts charts, String id, List<Metric> metrics) {
 		if ((metrics != null) && (metrics.size() > 0)) {
 			Chart chart = charts.createBarChart(id, "", "day",
@@ -125,7 +125,7 @@
 			for (Metric metric : metrics) {
 				chart.addValue(metric.name, (int)metric.count);
 			}
-			charts.addChart(chart);	
+			charts.addChart(chart);
 		}
 	}
 
@@ -179,6 +179,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return SummaryPage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/NoDocsPage.java b/src/main/java/com/gitblit/wicket/pages/NoDocsPage.java
index 868e5d0..7dcc022 100644
--- a/src/main/java/com/gitblit/wicket/pages/NoDocsPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/NoDocsPage.java
@@ -33,6 +33,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return DocsPage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
index b3250a6..134ee04 100644
--- a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
@@ -201,11 +201,13 @@
 			objectParams = params;
 
 			// preserve the objectid iff the objectid directly (or indirectly) refers to a ref
-			if (!StringUtils.isEmpty(objectId)) {
+			if (isCommitPage() && !StringUtils.isEmpty(objectId)) {
 				RevCommit commit = JGitUtils.getCommit(r, objectId);
-				String bestId = getBestCommitId(commit);
-				if (!commit.getName().equals(bestId)) {
-					objectParams = WicketUtils.newObjectParameter(getRepositoryName(), bestId);
+				if (commit != null) {
+					String bestId = getBestCommitId(commit);
+					if (!commit.getName().equals(bestId)) {
+						objectParams = WicketUtils.newObjectParameter(getRepositoryName(), bestId);
+					}
 				}
 			}
 		}
@@ -574,6 +576,10 @@
 
 	protected abstract String getPageName();
 
+	protected boolean isCommitPage() {
+		return false;
+	}
+
 	protected Component createPersonPanel(String wicketId, PersonIdent identity,
 			Constants.SearchType searchType) {
 		String name = identity == null ? "" : identity.getName();
diff --git a/src/main/java/com/gitblit/wicket/pages/TagPage.java b/src/main/java/com/gitblit/wicket/pages/TagPage.java
index afade81..9eed279 100644
--- a/src/main/java/com/gitblit/wicket/pages/TagPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/TagPage.java
@@ -101,6 +101,11 @@
 	}
 
 	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
+	@Override
 	protected Class<? extends BasePage> getRepoNavPageClass() {
 		return LogPage.class;
 	}
diff --git a/src/main/java/com/gitblit/wicket/pages/TreePage.java b/src/main/java/com/gitblit/wicket/pages/TreePage.java
index 722b824..9ddbecf 100644
--- a/src/main/java/com/gitblit/wicket/pages/TreePage.java
+++ b/src/main/java/com/gitblit/wicket/pages/TreePage.java
@@ -186,4 +186,10 @@
 	protected String getPageName() {
 		return getString("gb.tree");
 	}
+
+	@Override
+	protected boolean isCommitPage() {
+		return true;
+	}
+
 }
