diff --git a/samples/vboxwrapper/vbox_common.cpp b/samples/vboxwrapper/vbox_common.cpp
index a2bc64ab837bef3354c62d363c0ddfa2282174a4..8fddbfa2e0460f5f6d7b2c147f8db48894354c5d 100644
--- a/samples/vboxwrapper/vbox_common.cpp
+++ b/samples/vboxwrapper/vbox_common.cpp
@@ -420,6 +420,11 @@ bool VBOX_BASE::is_logged_failure_vm_extensions_not_supported() {
     return false;
 }
 
+bool VBOX_BASE::is_logged_failure_vm_powerup() {
+    if (vm_log.find("Power up failed (vrc=VINF_SUCCESS, rc=E_FAIL (0X80004005))") != string::npos) return true;
+    return false;
+}
+
 bool VBOX_BASE::is_logged_failure_host_out_of_memory() {
     if (vm_log.find("VERR_EM_NO_MEMORY") != string::npos) return true;
     if (vm_log.find("VERR_NO_MEMORY") != string::npos) return true;
diff --git a/samples/vboxwrapper/vbox_common.h b/samples/vboxwrapper/vbox_common.h
index a0e540f002a39273f0aef60fdcae3958ba47d8d0..f1b8108066709321bdfeed4d428ff807ce31fffc 100644
--- a/samples/vboxwrapper/vbox_common.h
+++ b/samples/vboxwrapper/vbox_common.h
@@ -278,6 +278,7 @@ public:
     virtual bool is_logged_failure_vm_extensions_disabled();
     virtual bool is_logged_failure_vm_extensions_in_use();
     virtual bool is_logged_failure_vm_extensions_not_supported();
+    virtual bool is_logged_failure_vm_powerup();
     virtual bool is_logged_failure_host_out_of_memory();
     virtual bool is_logged_failure_guest_job_out_of_memory();
     virtual bool is_virtualbox_version_newer(int maj, int min, int rel);
diff --git a/samples/vboxwrapper/vboxwrapper.cpp b/samples/vboxwrapper/vboxwrapper.cpp
index 00a682aceb57ef2581bf4512dbe224c0ab8093aa..14712b164a8b1d7f4700152aaf8906efd555cef0 100644
--- a/samples/vboxwrapper/vboxwrapper.cpp
+++ b/samples/vboxwrapper/vboxwrapper.cpp
@@ -1165,7 +1165,7 @@ int main(int argc, char** argv) {
     pVM->poll(true);
 
     // Did we timeout?
-    if (timeout <= dtime()) {
+    if (!pVM->online && (timeout <= dtime())) {
         vboxwrapper_msg_prefix(buf, sizeof(buf));
         fprintf(
             stderr,