diff --git a/gms/memberdb/admin.py b/gms/memberdb/admin.py
index 5c84e08c1d9298e45a9c4b65f13a917d7aaa10f1..25d3698ee1fceae61b8ddd7b38dcb43d23460184 100644
--- a/gms/memberdb/admin.py
+++ b/gms/memberdb/admin.py
@@ -67,7 +67,7 @@ class MemberAdmin(admin.ModelAdmin):
 Define the admin page for viewing normal Member records (all details included) and approving them
 """
 class MembershipAdmin(admin.ModelAdmin):
-    list_display = ['membership_info', 'membership_type', 'payment_method', 'approved', 'date_submitted', 'member_actions']
+    list_display = ['membership_info', 'member_actions', 'membership_type', 'payment_method', 'approved', 'date_submitted', ]
     list_display_links = None
     list_filter = ['approved']
     readonly_fields = ['date_submitted']
diff --git a/gms/memberdb/approve.py b/gms/memberdb/approve.py
index 91fe40f3fcbd631e556e86d2490fc1efa37fab92..c80632fb9a460c25989133bfaa8f7d22a0704e63 100644
--- a/gms/memberdb/approve.py
+++ b/gms/memberdb/approve.py
@@ -16,14 +16,14 @@ def get_membership_type(member):
     best = None
     is_fresh = member.memberships.all().count() == 0
     for t in MEMBERSHIP_TYPES_:
-        if (t['must_be_fresh'] == is_fresh):
+        if (t['must_be_fresh'] == is_fresh and t['is_student'] == member.is_student and t['is_guild'] == member.is_guild):
             best = t
             break
         elif (t['is_student'] == member.is_student and t['is_guild'] == member.is_guild):
             best = t
             break
     if (best is None):
-        return MEMBERSHIP_TYPES_[0]['dispense']
+        return MEMBERSHIP_TYPES_[1]['dispense']
     else:
         return best['dispense']