diff --git a/src/applications/diffusion/request/git/DiffusionGitRequest.php b/src/applications/diffusion/request/git/DiffusionGitRequest.php
index 11e414a37..46d32d665 100644
--- a/src/applications/diffusion/request/git/DiffusionGitRequest.php
+++ b/src/applications/diffusion/request/git/DiffusionGitRequest.php
@@ -1,134 +1,134 @@
 <?php
 
 /*
  * Copyright 2011 Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 class DiffusionGitRequest extends DiffusionRequest {
 
   protected function initializeFromAphrontRequestDictionary(array $data) {
     parent::initializeFromAphrontRequestDictionary($data);
 
     $path = $this->path;
     $parts = explode('/', $path);
 
     $branch = array_shift($parts);
     if ($branch != ':') {
       $this->branch = $this->decodeBranchName($branch);
     }
 
     foreach ($parts as $key => $part) {
       // Prevent any hyjinx since we're ultimately shipping this to the
       // filesystem under a lot of git workflows.
       if ($part == '..') {
         unset($parts[$key]);
       }
     }
 
     $this->path = implode('/', $parts);
 
     if ($this->repository) {
       $local_path = $this->repository->getDetail('local-path');
 
       // TODO: This is not terribly efficient and does not produce terribly
       // good error messages, but it seems better to put error handling code
       // here than to try to do it in every query.
 
       $branch = $this->getBranch();
 
       // TODO: Here, particularly, we should give the user a specific error
       // message to indicate whether they've typed in some bogus branch and/or
       // followed a bad link, or misconfigured the default branch in the
       // Repository tool.
       execx(
         '(cd %s && git rev-parse --verify %s)',
         $local_path,
         $branch);
 
       if ($this->commit) {
         list($commit) = execx(
           '(cd %s && git rev-parse --verify %s)',
           $local_path,
           $this->commit);
 
         // Beyond verifying them, expand commit short forms to full 40-character
         // sha1s.
         $this->commit = trim($commit);
 
 /*
 
   TODO: Unclear if this is actually a good idea or not; it breaks commit views
   at the very least.
 
         list($contains) = execx(
           '(cd %s && git branch --contains %s)',
           $local_path,
           $this->commit);
         $contains = array_filter(explode("\n", $contains));
         $found = false;
         foreach ($contains as $containing_branch) {
           $containing_branch = trim($containing_branch, "* \n");
           if ($containing_branch == $branch) {
             $found = true;
             break;
           }
         }
         if (!$found) {
           throw new Exception(
             "Commit does not exist on this branch!");
         }
 */
 
       }
     }
 
 
   }
 
   public function getBranch() {
     if ($this->branch) {
       return $this->branch;
     }
     if ($this->repository) {
       return $this->repository->getDetail('default-branch', 'origin/master');
     }
     throw new Exception("Unable to determine branch!");
   }
 
   public function getUriPath() {
     return '/diffusion/'.$this->getCallsign().'/browse/'.
-      $this->branch.'/'.$this->path;
+      $this->getBranchURIComponent($this->branch).$this->path;
   }
 
   public function getCommit() {
     if ($this->commit) {
       return $this->commit;
     }
     return $this->getBranch();
   }
 
   public function getBranchURIComponent($branch) {
     return $this->encodeBranchName($branch).'/';
   }
 
   private function decodeBranchName($branch) {
     return str_replace(':', '/', $branch);
   }
 
   private function encodeBranchName($branch) {
     return str_replace('/', ':', $branch);
   }
 
 }