@ssl_required
 @login_required
-@transaction.commit_on_success
+@transaction.atomic
 def profile(request):
        # We always have the user, but not always the profile. And we need a bit
        # of a hack around the normal forms code since we have two different
 
 @ssl_required
 @login_required
-@transaction.commit_on_success
+@transaction.atomic
 def change_email(request):
        tokens = EmailChangeToken.objects.filter(user=request.user)
        token = len(tokens) and tokens[0] or None
 
 @ssl_required
 @login_required
-@transaction.commit_on_success
+@transaction.atomic
 def confirm_change_email(request, tokenhash):
        tokens = EmailChangeToken.objects.filter(user=request.user, token=tokenhash)
        token = len(tokens) and tokens[0] or None
 
                if url == '':
                        return HttpResponseRedirect('.')
                varnish_purge(url)
-               transaction.commit_unless_managed()
                messages.info(request, "Purge completed: '^%s'" % url)
                return HttpResponseRedirect('.')
 
        for i in range(0, n):
                expr = request.POST['p%s' % i]
                curs.execute("SELECT varnish_purge_expr(%s)", (expr, ))
-       transaction.commit_unless_managed()
        return HttpResponse("Purged %s entries\n" % n)
 
 @nocache
 # Merge two organisations
 @login_required
 @user_passes_test(lambda u: u.is_superuser)
-@transaction.commit_on_success
+@transaction.atomic
 def admin_mergeorg(request):
        if request.method == 'POST':
                form = MergeOrgsForm(data=request.POST)
 
 
        # Purge it out of varnish so we start responding right away
        varnish_purge("/ftp")
-       transaction.commit_unless_managed()
 
        # Finally, indicate to the client that we're happy
        return HttpResponse("OK", content_type="text/plain")
 
        # do it properly. Possibly because of the cute stuff we do with
        # getattr/setattr above.
        varnish_purge("/community/survey/%s/" % surveyid)
-       transaction.commit_unless_managed()
 
        return HttpResponseRedirect("/community/survey/%s/" % surveyid)