diff --git a/pym/cl_assemble.py b/pym/cl_assemble.py
index ffdd73a..48582ad 100644
--- a/pym/cl_assemble.py
+++ b/pym/cl_assemble.py
@@ -173,7 +173,7 @@ class cl_assemble(color_print):
              #{'command':'emerge -D --newuse world',
              # 'step':'newuse'},
              # update world
-             {'command':'emerge -uDN --with-bdeps=y world',
+             {'command':'emerge -uDN --changed-deps=y --with-bdeps=y world',
               'step':'update'},
              # depclean
              {'command':'emerge --depclean',
@@ -685,7 +685,8 @@ class cl_assemble(color_print):
         else:
             return False
 
-    def runChroot(self,command,raiseError=True,showProcess=False,joinErr=False):
+    def runChroot(self,command,raiseError=True,showProcess=False,joinErr=False,
+                  forceAsk=False):
         """Run command in chroot specified by cl_assemble_path"""
         try:
             if showProcess:
@@ -702,7 +703,8 @@ class cl_assemble(color_print):
             if (not needAsk and 
                 self.clVars.Get('cl_assemble_ask_important_set') == "on" and 
                 "emerge " in command and 
-                ("--depclean" in command or "world" in command)):
+                ("--depclean" in command or "world" in command
+                 or forceAsk)):
                 needAsk = True
             if "emerge " in command:
                 command = "env-update &>/dev/null;" \
@@ -1887,7 +1889,7 @@ class cl_assemble(color_print):
             rebuild_packages = " ".join(rebuild_list)
 
             cmd = self.runChroot("emerge -1 %s" % rebuild_packages,
-                                 showProcess=True)
+                                 showProcess=True, forceAsk=True)
             if cmd.failed():
                 raise AssembleError(
                     _("An error occurred when executing the command")+
