diff --git a/features/step_definitions/common_steps.rb b/features/step_definitions/common_steps.rb
index 4f52b40..9e1fa3c 100644
--- a/features/step_definitions/common_steps.rb
+++ b/features/step_definitions/common_steps.rb
@@ -771,6 +771,52 @@ Given /^the USB drive "([^"]+)" contains Tails with persistence configured and p
     step "I shutdown Tails and wait for the computer to power off"
 end
 
+def gnome_app_menu_click_helper(click_me, verify_me = nil)
+  try_for(60) do
+    @screen.hide_cursor
+
+#    @screen.wait_and_click(click_me, 10)
+#    @screen.wait(verify_me, 10) if verify_me
+
+    STDERR.puts "XXX 1: looking for click target:    #{click_me}"
+    begin
+      @screen.wait_and_click(click_me, 10)
+    rescue FindFailed => e
+      time_of_fail = Time.now - TIME_AT_START
+      secs = "%02d" % (time_of_fail % 60)
+      mins = "%02d" % ((time_of_fail / 60) % 60)
+      hrs  = "%02d" % (time_of_fail / (60*60))
+      STDERR.puts "X"*80
+      STDERR.puts "ERROR: could not find click target: #{click_me}"
+      STDERR.puts "XXX Time: #{hrs}:#{mins}:#{secs}"
+      STDERR.puts "X"*80
+      raise e
+    end
+    STDERR.puts "XXX 2: found and clicked:           #{click_me}"
+
+    if verify_me
+      STDERR.puts "XXX 3: looking for verification:    #{verify_me}"
+      begin
+        @screen.wait(verify_me, 10)
+      rescue FindFailed => e
+        time_of_fail = Time.now - TIME_AT_START
+        secs = "%02d" % (time_of_fail % 60)
+        mins = "%02d" % ((time_of_fail / 60) % 60)
+        hrs  = "%02d" % (time_of_fail / (60*60))
+        STDERR.puts "X"*80
+        STDERR.puts "ERROR: could not find verification: #{verify_me}"
+        STDERR.puts "XXX Time: #{hrs}:#{mins}:#{secs}"
+        STDERR.puts "X"*80
+        raise e
+      end
+      STDERR.puts "XXX 4: found verification:          #{verify_me}"
+    end
+
+    true
+  end
+  STDERR.puts "XXX DONE"
+end
+
 Given /^I start "([^"]+)" via the GNOME "([^"]+)" applications menu$/ do |app, submenu|
   next if @skip_steps_while_restoring_background
   case @theme
@@ -779,13 +825,12 @@ Given /^I start "([^"]+)" via the GNOME "([^"]+)" applications menu$/ do |app, s
   else
     prefix = 'Gnome'
   end
-  @screen.wait_and_click(prefix + "ApplicationsMenu.png", 10)
-  @screen.hide_cursor
-  # Wait for the menu to be displayed, by waiting for one of its last entries
-  @screen.wait(prefix + "ApplicationsTails.png", 40)
-  @screen.wait_and_hover(prefix + "Applications" + submenu + ".png", 40)
-  @screen.hide_cursor
-  @screen.wait_and_click(prefix + "Applications" + app + ".png", 40)
+  menu_button = prefix + "ApplicationsMenu.png"
+  sub_menu_entry = prefix + "Applications" + submenu + ".png"
+  application_entry = prefix + "Applications" + app + ".png"
+  gnome_app_menu_click_helper(menu_button, sub_menu_entry)
+  gnome_app_menu_click_helper(sub_menu_entry, application_entry)
+  gnome_app_menu_click_helper(application_entry)
 end
 
 Given /^I start "([^"]+)" via the GNOME "([^"]+)"\/"([^"]+)" applications menu$/ do |app, submenu, subsubmenu|
@@ -796,15 +841,14 @@ Given /^I start "([^"]+)" via the GNOME "([^"]+)"\/"([^"]+)" applications menu$/
   else
     prefix = 'Gnome'
   end
-  @screen.wait_and_click(prefix + "ApplicationsMenu.png", 10)
-  @screen.hide_cursor
-  # Wait for the menu to be displayed, by waiting for one of its last entries
-  @screen.wait(prefix + "ApplicationsTails.png", 40)
-  @screen.wait_and_hover(prefix + "Applications" + submenu + ".png", 20)
-  @screen.hide_cursor
-  @screen.wait_and_hover(prefix + "Applications" + subsubmenu + ".png", 20)
-  @screen.hide_cursor
-  @screen.wait_and_click(prefix + "Applications" + app + ".png", 20)
+  menu_button = prefix + "ApplicationsMenu.png"
+  sub_menu_entry = prefix + "Applications" + submenu + ".png"
+  sub_sub_menu_entry = prefix + "Applications" + subsubmenu + ".png"
+  application_entry = prefix + "Applications" + app + ".png"
+  gnome_app_menu_click_helper(menu_button, sub_menu_entry)
+  gnome_app_menu_click_helper(sub_menu_entry, sub_sub_menu_entry)
+  gnome_app_menu_click_helper(sub_sub_menu_entry, application_entry)
+  gnome_app_menu_click_helper(application_entry)
 end
 
 When /^I type "([^"]+)"$/ do |string|
