El bug se describe en http://code.djangoproject.com/ticket/7233, pero básicamente consiste en la imposibilidad de guardar objetos de tipo QueryDict en una sesión. Los usuarios de Django suelen toparse con el problema al intentar guardar en la sesión el objeto request.POST, yo lo hago de esta forma:
request.session['POST'] = dict(request.POST.items())
No sirve si se tienen múltiples valores para una clave porque items devuelve para cada clave el último valor almacenado.
En este caso, se puede usar lists:
request.session['POST'] = dict(request.POST.lists())