- 
    Type:Improvement 
- 
    Resolution: Fixed
- 
    Priority:Minor - P4 
- 
    Affects Version/s: None
- 
    Component/s: Query
It's nice to restore previous scope in `.with_scope`, don't you think?
diff --git a/lib/mongoid/scopable.rb b/lib/mongoid/scopable.rb
index 76887e78a..7b4f55331 100644
--- a/lib/mongoid/scopable.rb
+++ b/lib/mongoid/scopable.rb
@@ -226,11 +226,12 @@ module Mongoid
       #
       # @since 1.0.0
       def with_scope(criteria)
+        previous = Threaded.current_scope(self)
         Threaded.set_current_scope(criteria, self)
         begin
           yield criteria
         ensure
-          Threaded.set_current_scope(nil, self)
+          Threaded.set_current_scope(previous, self)
         end
       end
 
- clones
- 
                    MONGOID-5186 .with_scope should restore previous scope -         
- Closed
 
-         
- is duplicated by
- 
                    MONGOID-5586 unscoped has no effect when a scope does not provide a query condition -         
- Closed
 
-         
- is related to
- 
                    MONGOID-5215 Document that or/nor conditions make default scope one of the disjunction branches -         
- Closed
 
-         
- 
                    MONGOID-5214 Make unscoped clear current scope or document that it does not -         
- Closed
 
-         
- links to