diff --git a/app/auth/views.py b/app/auth/views.py
index 417aae5084e931ee624b0e82484afe78c42c3b68..0e117b332fd0a75aab9908658f47c30900e8a43f 100644
--- a/app/auth/views.py
+++ b/app/auth/views.py
@@ -1,5 +1,5 @@
 from flask import flash, redirect, render_template, request, url_for
-from flask_login import login_required, login_user, logout_user
+from flask_login import login_required, login_user, logout_user, current_user
 from . import auth
 from .. import db
 from .forms import LoginForm, PasswordResetRequestForm, RegistrationForm
@@ -32,6 +32,8 @@ def logout():
 
 @auth.route('/register', methods=['GET', 'POST'])
 def register():
+    if not current_user.is_anonymous:
+        return redirect(url_for('main.index'))
     form = RegistrationForm()
     if form.validate_on_submit():
         user = User(email=form.email.data, username=form.username.data,
@@ -40,7 +42,7 @@ def register():
         db.session.commit()
         flash('Successfully registered! You can now login.')
         return redirect(url_for('auth.login'))
-    return render_template('auth/register.html.j2')
+    return render_template('auth/register.html.j2', form=form)
 
 
 @auth.route('/reset', methods=['GET', 'POST'])