diff --git a/Changelog.md b/Changelog.md
index 90121c0c2eb596bb51b57667cc56723fa0dc1140..f0d6bc74035fff66990ef00688940db9f6cd679c 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -6,6 +6,7 @@
 * Redirect to sign in page when a background request fails with 401 [#6496](https://github.com/diaspora/diaspora/pull/6496)
 * Correctly skip setting sidekiq logfile on Heroku [#6500](https://github.com/diaspora/diaspora/pull/6500)
 * Fix notifications for interactions by non-contacts [#6498](https://github.com/diaspora/diaspora/pull/6498)
+* Fix issue where the publisher was broken on profile pages [#6503](https://github.com/diaspora/diaspora/pull/6503)
 
 ## Features
 
diff --git a/app/views/people/show.html.haml b/app/views/people/show.html.haml
index 235c22ccc36f005a2689d0e82b0e50db44fa6f1d..e368449d2747f0e2d7ef60b78f6ddd8c7227fa00 100644
--- a/app/views/people/show.html.haml
+++ b/app/views/people/show.html.haml
@@ -23,7 +23,7 @@
 
       .stream_container
 
-        -if user_signed_in? && current_page?(person_path(current_user.person))
+        - if user_signed_in? && current_user.person == @person
           = render 'publisher/publisher', publisher_aspects_for(nil)
 
         #main_stream.stream
diff --git a/spec/integration/profile_spec.rb b/spec/integration/profile_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..3428c11d1055d1784e9af8994da07a0e4b2a75aa
--- /dev/null
+++ b/spec/integration/profile_spec.rb
@@ -0,0 +1,72 @@
+require "spec_helper"
+require "requests_helper"
+
+describe PeopleController, type: :request do
+  context "for the current user" do
+    before do
+      login alice
+    end
+
+    it "displays the publisher for user profile path" do
+      get "/u/#{alice.username}"
+
+      expect(response.status).to eq(200)
+      # make sure we are signed in
+      expect(response.body).not_to match(/a class="login"/)
+      expect(response.body).to match(/div id='publisher_textarea_wrapper'/)
+    end
+
+    it "displays the publisher for people path" do
+      get "/people/#{alice.person.guid}"
+
+      expect(response.status).to eq(200)
+      # make sure we are signed in
+      expect(response.body).not_to match(/a class="login"/)
+      expect(response.body).to match(/div id='publisher_textarea_wrapper'/)
+    end
+  end
+
+  context "for another user" do
+    before do
+      login bob
+    end
+
+    it "doesn't display the publisher for user profile path" do
+      get "/u/#{alice.username}"
+
+      expect(response.status).to eq(200)
+      # make sure we are signed in
+      expect(response.body).not_to match(/a class="login"/)
+      expect(response.body).not_to match(/div id='publisher_textarea_wrapper'/)
+    end
+
+    it "doesn't display the publisher for people path" do
+      get "/people/#{alice.person.guid}"
+
+      expect(response.status).to eq(200)
+      # make sure we are signed in
+      expect(response.body).not_to match(/a class="login"/)
+      expect(response.body).not_to match(/div id='publisher_textarea_wrapper'/)
+    end
+  end
+
+  context "with no user signed in" do
+    it "doesn't display the publisher for user profile path" do
+      get "/u/#{alice.username}"
+
+      expect(response.status).to eq(200)
+      # make sure we aren't signed in
+      expect(response.body).to match(/a class="login"/)
+      expect(response.body).not_to match(/div id='publisher_textarea_wrapper'/)
+    end
+
+    it "doesn't display the publisher for people path" do
+      get "/people/#{alice.person.guid}"
+
+      expect(response.status).to eq(200)
+      # make sure we aren't signed in
+      expect(response.body).to match(/a class="login"/)
+      expect(response.body).not_to match(/div id='publisher_textarea_wrapper'/)
+    end
+  end
+end
diff --git a/spec/requests_helper.rb b/spec/requests_helper.rb
new file mode 100644
index 0000000000000000000000000000000000000000..fdae9a95da530103e43a1c054db2a268fc9a64fe
--- /dev/null
+++ b/spec/requests_helper.rb
@@ -0,0 +1,5 @@
+include Warden::Test::Helpers
+
+def login(user)
+  login_as user, scope: :user
+end