diff --git a/allauth/socialaccount/views.py b/allauth/socialaccount/views.py
index <HASH>..<HASH> 100644
--- a/allauth/socialaccount/views.py
+++ b/allauth/socialaccount/views.py
@@ -21,8 +21,10 @@ class SignupView(RedirectAuthenticatedUserMixin, CloseableSignupMixin,
     template_name = 'socialaccount/signup.html'
 
     def dispatch(self, request, *args, **kwargs):
-        self.sociallogin = SocialLogin \
-            .deserialize(request.session.get('socialaccount_sociallogin'))
+        self.sociallogin = None
+        data = request.session.get('socialaccount_sociallogin')
+        if data:
+            self.sociallogin = SocialLogin.deserialize(data)
         if not self.sociallogin:
             return HttpResponseRedirect(reverse('account_login'))
         return super(SignupView, self).dispatch(request, *args, **kwargs)
TypeError when going directly to /accounts/social/signup/ (closes #<I>)