diff --git a/app/views/graph/show.html.haml b/app/views/graph/show.html.haml
index ca3a8706313ee75af30ccab845ae850aac356760..4ca75d68f8c0336b0690d2175ec95e89c05f2cd9 100644
--- a/app/views/graph/show.html.haml
+++ b/app/views/graph/show.html.haml
@@ -14,6 +14,7 @@
     branch_graph = new BranchGraph($("#holder"), {
       url: '#{project_graph_path(@project, @ref, format: :json)}',
       commit_url: '#{project_commit_path(@project, 'ae45ca32').gsub("ae45ca32", "%s")}',
-      ref: '#{@ref}'
+      ref: '#{@ref}',
+      commit_id: '#{@commit && @commit.id}'
     });
   });
diff --git a/vendor/assets/javascripts/branch-graph.js b/vendor/assets/javascripts/branch-graph.js
index 7929d3b2a14c867e607d71547883a25dfb452004..fb22953acd284aa51761b0fc80bac6957824dca8 100644
--- a/vendor/assets/javascripts/branch-graph.js
+++ b/vendor/assets/javascripts/branch-graph.js
@@ -161,14 +161,23 @@
       
       if (this.commits[i].refs) {
         this.appendLabel(x, y, this.commits[i].refs);
-
-        // The main branch is displayed in the center.
-        re = new RegExp('(^| )' + this.options.ref + '( |$)');
-        if (this.commits[i].refs.match(re)) {
-          scrollLeft = x - graphWidth / 2;
-        }
       }
       
+      // mark commit and displayed in the center
+      if (this.commits[i].id == this.options.commit_id) {
+        r.path([
+            'M', x, y - 5,
+            'L', x + 4, y - 15,
+            'L', x - 4, y - 15,
+            'Z'
+            ]).attr({
+              "fill": "#000",
+              "fill-opacity": .7,
+              "stroke": "none"
+              });
+        scrollLeft = x - graphWidth / 2;
+      }
+
       this.appendAnchor(top, this.commits[i], x, y);
     }
     top.toFront();