diff --git a/lib/virtualbox/vm.rb b/lib/virtualbox/vm.rb
index <HASH>..<HASH> 100644
--- a/lib/virtualbox/vm.rb
+++ b/lib/virtualbox/vm.rb
@@ -332,6 +332,8 @@ module VirtualBox
           result = find_helper.call(name, child)
           return result unless result.nil?
         end
+
+        nil
       end
 
       find_helper.call(name, root_snapshot)
diff --git a/test/virtualbox/vm_test.rb b/test/virtualbox/vm_test.rb
index <HASH>..<HASH> 100644
--- a/test/virtualbox/vm_test.rb
+++ b/test/virtualbox/vm_test.rb
@@ -527,6 +527,16 @@ class VMTest < Test::Unit::TestCase
         assert_nil @instance.find_snapshot("foo")
       end
 
+      should "return nil if the snapshot is not found" do
+        snapshot = mock("snapshot")
+        snapshot.stubs(:name).returns("wrong")
+        snapshot.stubs(:uuid).returns(nil)
+        snapshot.stubs(:children).returns([])
+        @instance.stubs(:root_snapshot).returns(snapshot)
+
+        assert_nil @instance.find_snapshot("bar")
+      end
+
       # TODO: Testing traversing the snapshot tree. Too many mocks :S
     end
Return nil if a snapshot is not found