diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BasePostFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BasePostFragment.java
index 7408d9d7fb4c20a616e253a8b8953e24cc414200..49633c6bfa1781b6bd1d138f57974ed310daf732 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BasePostFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BasePostFragment.java
@@ -1,5 +1,6 @@
 package org.briarproject.briar.android.blog;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
@@ -20,8 +21,10 @@ import java.util.logging.Logger;
 
 import javax.annotation.Nullable;
 
+import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
 import static android.view.View.INVISIBLE;
 import static android.view.View.VISIBLE;
+import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID;
 import static org.briarproject.briar.android.util.UiUtils.MIN_DATE_RESOLUTION;
 
 @UiThread
@@ -58,6 +61,20 @@ abstract class BasePostFragment extends BaseFragment {
 		progressBar = (ProgressBar) view.findViewById(R.id.progressBar);
 		progressBar.setVisibility(VISIBLE);
 		ui = new BlogPostViewHolder(view);
+		ui.setOnBlogPostClickListener(new OnBlogPostClickListener() {
+			@Override
+			public void onBlogPostClick(BlogPostItem post) {
+				// We're already there
+			}
+
+			@Override
+			public void onAuthorClick(BlogPostItem post) {
+				Intent i = new Intent(getContext(), BlogActivity.class);
+				i.putExtra(GROUP_ID, post.getGroupId().getBytes());
+				i.setFlags(FLAG_ACTIVITY_CLEAR_TOP);
+				getContext().startActivity(i);
+			}
+		});
 		return view;
 	}
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java
index c9305411d6a17a7e521d41f6fa29315abe105c53..cb0981f36c42cbecc4b5a18be7f90cba5fd1d681 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java
@@ -27,7 +27,6 @@ import org.briarproject.briar.R;
 import org.briarproject.briar.android.activity.ActivityComponent;
 import org.briarproject.briar.android.activity.BriarActivity;
 import org.briarproject.briar.android.blog.BlogController.BlogSharingListener;
-import org.briarproject.briar.android.blog.BlogPostAdapter.OnBlogPostClickListener;
 import org.briarproject.briar.android.controller.SharingController;
 import org.briarproject.briar.android.controller.handler.UiResultExceptionHandler;
 import org.briarproject.briar.android.fragment.BaseFragment;
@@ -216,6 +215,15 @@ public class BlogFragment extends BaseFragment
 		showNextFragment(f);
 	}
 
+	@Override
+	public void onAuthorClick(BlogPostItem post) {
+		if (post.getGroupId().equals(groupId)) return; // We're already there
+		Intent i = new Intent(getContext(), BlogActivity.class);
+		i.putExtra(GROUP_ID, post.getGroupId().getBytes());
+		i.setFlags(FLAG_ACTIVITY_CLEAR_TOP);
+		getContext().startActivity(i);
+	}
+
 	private void loadBlogPosts(final boolean reload) {
 		blogController.loadBlogPosts(
 				new UiResultExceptionHandler<Collection<BlogPostItem>, DbException>(
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostAdapter.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostAdapter.java
index febca0327d247a82b52f08fab94f8710641db092..a9ac9f7232b98572172efd4730899a1b448ca1b0 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostAdapter.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostAdapter.java
@@ -48,8 +48,4 @@ class BlogPostAdapter
 		return a.getId().equals(b.getId());
 	}
 
-	interface OnBlogPostClickListener {
-		void onBlogPostClick(BlogPostItem post);
-	}
-
 }
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java
index 76232fc5755fc52474c25f4203a2a2e7a1cbf196..b72f29fc58451c1e7be50b5474fecb423281337e 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java
@@ -20,7 +20,6 @@ import android.widget.TextView;
 import org.briarproject.bramble.api.identity.Author;
 import org.briarproject.bramble.api.sync.MessageId;
 import org.briarproject.briar.R;
-import org.briarproject.briar.android.blog.BlogPostAdapter.OnBlogPostClickListener;
 import org.briarproject.briar.android.view.AuthorView;
 import org.briarproject.briar.api.blog.BlogCommentHeader;
 import org.briarproject.briar.api.blog.BlogPostHeader;
@@ -49,6 +48,7 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder {
 	private final TextView body;
 	private final ViewGroup commentContainer;
 
+	@Nullable
 	private OnBlogPostClickListener listener;
 
 	BlogPostViewHolder(View v) {
@@ -111,10 +111,15 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder {
 		author.setPersona(
 				item.isRssFeed() ? AuthorView.RSS_FEED : AuthorView.NORMAL);
 		// TODO make author clickable more often #624
-		if (item.getHeader().getType() == POST) {
-			author.setBlogLink(post.getGroupId());
+		if (listener != null && item.getHeader().getType() == POST) {
+			author.setAuthorClickable(new OnClickListener() {
+				@Override
+				public void onClick(View v) {
+					listener.onAuthorClick(item);
+				}
+			});
 		} else {
-			author.unsetBlogLink();
+			author.setAuthorNotClickable();
 		}
 
 		// post body
@@ -165,7 +170,14 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder {
 		reblogger.setAuthor(item.getAuthor());
 		reblogger.setAuthorStatus(item.getAuthorStatus());
 		reblogger.setDate(item.getTimestamp());
-		reblogger.setBlogLink(item.getGroupId());
+		if (listener != null) {
+			reblogger.setAuthorClickable(new OnClickListener() {
+				@Override
+				public void onClick(View v) {
+					listener.onAuthorClick(item);
+				}
+			});
+		}
 		reblogger.setVisibility(VISIBLE);
 		reblogger.setPersona(AuthorView.REBLOGGER);
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java
index c7a64659a68367487f6f630bce75e24b34e28f8b..097de3921ef188f285b43b90337244bea0f1f431 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java
@@ -19,7 +19,6 @@ import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
 import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.activity.ActivityComponent;
-import org.briarproject.briar.android.blog.BlogPostAdapter.OnBlogPostClickListener;
 import org.briarproject.briar.android.blog.FeedController.FeedListener;
 import org.briarproject.briar.android.controller.handler.UiResultExceptionHandler;
 import org.briarproject.briar.android.fragment.BaseFragment;
@@ -34,6 +33,7 @@ import javax.annotation.Nullable;
 import javax.inject.Inject;
 
 import static android.app.Activity.RESULT_OK;
+import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
 import static android.support.design.widget.Snackbar.LENGTH_LONG;
 import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID;
 import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_WRITE_BLOG_POST;
@@ -223,6 +223,14 @@ public class FeedFragment extends BaseFragment implements
 		showNextFragment(f);
 	}
 
+	@Override
+	public void onAuthorClick(BlogPostItem post) {
+		Intent i = new Intent(getContext(), BlogActivity.class);
+		i.putExtra(GROUP_ID, post.getGroupId().getBytes());
+		i.setFlags(FLAG_ACTIVITY_CLEAR_TOP);
+		getContext().startActivity(i);
+	}
+
 	@Override
 	public String getUniqueTag() {
 		return TAG;
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/OnBlogPostClickListener.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/OnBlogPostClickListener.java
new file mode 100644
index 0000000000000000000000000000000000000000..9920e477589a49f814322fbe1495bc55e176b8fb
--- /dev/null
+++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/OnBlogPostClickListener.java
@@ -0,0 +1,8 @@
+package org.briarproject.briar.android.blog;
+
+interface OnBlogPostClickListener {
+
+	void onBlogPostClick(BlogPostItem post);
+
+	void onAuthorClick(BlogPostItem post);
+}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java b/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java
index f03a88ecd1d17277bae5c70994584a9abef77683..e4cddd8c4b1d63eeec02d4e9b540a35dc5619432 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java
@@ -1,7 +1,6 @@
 package org.briarproject.briar.android.view;
 
 import android.content.Context;
-import android.content.Intent;
 import android.content.res.TypedArray;
 import android.graphics.Typeface;
 import android.support.annotation.DimenRes;
@@ -16,9 +15,7 @@ import android.widget.TextView;
 
 import org.briarproject.bramble.api.identity.Author;
 import org.briarproject.bramble.api.identity.Author.Status;
-import org.briarproject.bramble.api.sync.GroupId;
 import org.briarproject.briar.R;
-import org.briarproject.briar.android.blog.BlogActivity;
 import org.briarproject.briar.android.util.UiUtils;
 
 import javax.annotation.Nullable;
@@ -27,12 +24,10 @@ import de.hdodenhof.circleimageview.CircleImageView;
 import im.delight.android.identicons.IdenticonDrawable;
 
 import static android.content.Context.LAYOUT_INFLATER_SERVICE;
-import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
 import static android.graphics.Typeface.BOLD;
 import static android.util.TypedValue.COMPLEX_UNIT_PX;
 import static org.briarproject.bramble.api.identity.Author.Status.NONE;
 import static org.briarproject.bramble.api.identity.Author.Status.OURSELVES;
-import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID;
 
 @UiThread
 public class AuthorView extends RelativeLayout {
@@ -110,24 +105,16 @@ public class AuthorView extends RelativeLayout {
 		requestLayout();
 	}
 
-	public void setBlogLink(final GroupId groupId) {
+	public void setAuthorClickable(OnClickListener listener) {
 		setClickable(true);
 		TypedValue outValue = new TypedValue();
 		getContext().getTheme().resolveAttribute(
 				android.R.attr.selectableItemBackground, outValue, true);
 		setBackgroundResource(outValue.resourceId);
-		setOnClickListener(new OnClickListener() {
-			@Override
-			public void onClick(View v) {
-				Intent i = new Intent(getContext(), BlogActivity.class);
-				i.putExtra(GROUP_ID, groupId.getBytes());
-				i.setFlags(FLAG_ACTIVITY_CLEAR_TOP);
-				getContext().startActivity(i);
-			}
-		});
+		setOnClickListener(listener);
 	}
 
-	public void unsetBlogLink() {
+	public void setAuthorNotClickable() {
 		setClickable(false);
 		setBackgroundResource(android.R.color.transparent);
 		setOnClickListener(null);