diff --git a/src/infrastructure/markup/remarkup/markuprule/imagemacro/PhabricatorRemarkupRuleImageMacro.php b/src/infrastructure/markup/remarkup/markuprule/imagemacro/PhabricatorRemarkupRuleImageMacro.php
index 13a887fe4..97137c35b 100644
--- a/src/infrastructure/markup/remarkup/markuprule/imagemacro/PhabricatorRemarkupRuleImageMacro.php
+++ b/src/infrastructure/markup/remarkup/markuprule/imagemacro/PhabricatorRemarkupRuleImageMacro.php
@@ -1,87 +1,86 @@
 <?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.
  */
 
 /**
  * @group markup
  */
 class PhabricatorRemarkupRuleImageMacro
   extends PhutilRemarkupRule {
 
   const RANDOM_IMAGE_NAME = 'randomon';
   private $images = array();
   private $hash = 0;
 
   public function __construct() {
     $rows = id(new PhabricatorFileImageMacro())->loadAll();
     foreach ($rows as $row) {
       $this->images[$row->getName()] = $row->getFilePHID();
     }
     $this->images[self::RANDOM_IMAGE_NAME] = '';
+    $this->hash = 0;
   }
 
   public function apply($text) {
-    $this->hash = 0;
-
     return preg_replace_callback(
-      '@\b([a-zA-Z0-9_\-]+)\b@U',
+      '@\b([a-zA-Z0-9_\-]+)\b@',
       array($this, 'markupImageMacro'),
       $text);
   }
 
   /**
    * Silly function for generating some 'randomness' based on the
    * words in the text
    */
   private function updateHash($word) {
     // Simple Jenkins hash
     for ($ii = 0; $ii < strlen($word); $ii++) {
       $this->hash += ord($word[$ii]);
       $this->hash += ($this->hash << 10);
       $this->hash ^= ($this->hash >> 6);
     }
   }
 
   public function markupImageMacro($matches) {
     // Update the hash that is used for defining each 'randomon' image. This way
     // each 'randomon' image will be different, but they won't change when the
     // text is updated.
     $this->updateHash($matches[1]);
 
     if (array_key_exists($matches[1], $this->images)) {
       if ($matches[1] === self::RANDOM_IMAGE_NAME) {
         $keys = array_keys($this->images);
         $phid = $this->images[$keys[$this->hash % count($this->images)]];
       } else {
         $phid = $this->images[$matches[1]];
       }
 
 
       $img = phutil_render_tag(
         'img',
         array(
           'src'   => PhabricatorFileURI::getViewURIForPHID($phid),
           'alt'   => $matches[1],
           'title' => $matches[1]),
         null);
       return $this->getEngine()->storeText($img);
     } else {
       return $matches[1];
     }
   }
 
 }