diff --git a/leap_cli.gemspec b/leap_cli.gemspec
index 12fc07fc83e0056b77f8fc6bc6767c243a3e5129..cf8c37eb75277a2085a5dbca7252e10f03adecb7 100644
--- a/leap_cli.gemspec
+++ b/leap_cli.gemspec
@@ -51,6 +51,7 @@ spec = Gem::Specification.new do |s|
 
   # network gems
   s.add_runtime_dependency('sshkit', '~> 1.11')
+  s.add_runtime_dependency('fog-aws')
 
   # crypto gems
   # s.add_runtime_dependency('gpgme')    # << does not build on debian jessie, so now optional.
diff --git a/lib/leap_cli/commands/common.rb b/lib/leap_cli/commands/common.rb
index d49490ebd06f840ac602ff6d4794093f0251a3da..3dab2a082b8f3297bd620a6dfeca686016ebd043 100644
--- a/lib/leap_cli/commands/common.rb
+++ b/lib/leap_cli/commands/common.rb
@@ -20,7 +20,7 @@ module LeapCli; module Commands
       items.each_with_index(&block)
       say("q. quit")
       index = ask("number 1-#{items.length}> ")
-      if index.empty?
+      if index.nil? || index.empty?
         next
       elsif index =~ /q/
         bail!
diff --git a/lib/leap_cli/log.rb b/lib/leap_cli/log.rb
index 01d372ccb5315e28cf0d6ba03489c7140c7ba22a..fe9e1b77bd74b440f3dfa979630cee42b8768d92 100644
--- a/lib/leap_cli/log.rb
+++ b/lib/leap_cli/log.rb
@@ -28,6 +28,20 @@ module LeapCli
     def log_level
       logger.log_level
     end
+
+    #
+    # These probably should have been part of the logger originally,
+    # but they are made available here for convenience:
+    #
+
+    def bail!(*args, &block)
+      Util.bail!(*args, &block)
+    end
+
+    def assert!(*args, &block)
+      Util.assert!(*args, &block)
+    end
+
   end
 end
 
diff --git a/lib/leap_cli/util.rb b/lib/leap_cli/util.rb
index 29658da5344fb5efd2c82ec5b95705c1bede2b84..45606b75d1813fdb1c9a064f024ef2aaea16e13a 100644
--- a/lib/leap_cli/util.rb
+++ b/lib/leap_cli/util.rb
@@ -40,14 +40,13 @@ module LeapCli
     #
     # exit with error code and with a message that we are bailing out.
     #
-    def bail!(*message)
-      if block_given?
-        LeapCli.logger.log_level = 3
-        yield
-      elsif message
-        log 0, *message
+    def bail!(*message, &block)
+      LeapCli.logger.log_level = 3 if LeapCli.logger.log_level < 3
+      if message.any?
+        log(0, *message, &block)
+      else
+        log(0, :bailing, "out", &block)
       end
-      log 0, :bail, ""
       raise SystemExit.new(exit_status || 1)
     end