diff --git a/student/models.py b/student/models.py
index 39e0738c7261d412ab321d60491f3b5e3972caba..6c614966f9721bbe807d424329941569b8815e4d 100644
--- a/student/models.py
+++ b/student/models.py
@@ -48,5 +48,5 @@ class Registration(models.Model):
     def activate(self):
         self.user.is_active = True
         self.user.save()
-        self.delete()
+        #self.delete()
 
diff --git a/student/views.py b/student/views.py
index b00986ad158d8c06338ee4f107eeb29ecaec5789..397f32dc39c31bf1c1549a63204610628cea01a8 100644
--- a/student/views.py
+++ b/student/views.py
@@ -230,9 +230,11 @@ if settings.GENERATE_RANDOM_USER_CREDENTIALS:
 def activate_account(request, key):
     r=Registration.objects.filter(activation_key=key)
     if len(r)==1:
-        r[0].activate()
-        resp = render_to_response("activation_complete.html",{'csrf':csrf(request)['csrf_token']})
-#        print len(connection.queries), connection.queries
+        if not r[0].user.is_active:
+            r[0].activate()
+            resp = render_to_response("activation_complete.html",{'csrf':csrf(request)['csrf_token']})
+            return resp
+        resp = render_to_response("activation_active.html",{'csrf':csrf(request)['csrf_token']})
         return resp
     if len(r)==0:
         return render_to_response("activation_invalid.html",{'csrf':csrf(request)['csrf_token']})