diff --git a/app/assets/javascripts/discourse/lib/url.js.es6 b/app/assets/javascripts/discourse/lib/url.js.es6
index 7a39b5bda..c35cffba3 100644
--- a/app/assets/javascripts/discourse/lib/url.js.es6
+++ b/app/assets/javascripts/discourse/lib/url.js.es6
@@ -15,7 +15,7 @@ const DiscourseURL = Ember.Object.createWithMixins({
     Jumps to a particular post in the stream
   **/
   jumpToPost: function(postNumber, opts) {
-    const holderId = `#post_${postNumber}`;
+    const holderId = `.post-cloak[data-post-number=${postNumber}]`;
     const offset = function() {
 
       const $header = $('header');
diff --git a/app/assets/javascripts/discourse/views/cloaked.js.es6 b/app/assets/javascripts/discourse/views/cloaked.js.es6
index 76cc16baa..ae96413c7 100644
--- a/app/assets/javascripts/discourse/views/cloaked.js.es6
+++ b/app/assets/javascripts/discourse/views/cloaked.js.es6
@@ -96,7 +96,7 @@ export default Ember.View.extend({
         createArgs.context = target;
       }
       if (controller) { createArgs.controller = controller; }
-      this.setProperties({ style: null, loading: false });
+      this.setProperties({ style: ''.htmlSafe(), loading: false });
 
       const cloaks = target && (target instanceof Placeholder) ? target.viewName : this.get('cloaks');
       this.setContainedView(this.createChildView(cloaks, createArgs));
diff --git a/app/assets/javascripts/discourse/views/post.js.es6 b/app/assets/javascripts/discourse/views/post.js.es6
index dbab61f42..28c4fcbe7 100644
--- a/app/assets/javascripts/discourse/views/post.js.es6
+++ b/app/assets/javascripts/discourse/views/post.js.es6
@@ -327,6 +327,7 @@ const PostView = Discourse.GroupedView.extend(Ember.Evented, {
     // Find all the quotes
     Em.run.scheduleOnce('afterRender', this, '_insertQuoteControls');
 
+    $post.closest('.post-cloak').attr('data-post-number', postNumber);
     this._applySearchHighlight();
   }.on('didInsertElement'),