diff --git a/lib/rake/task_manager.rb b/lib/rake/task_manager.rb
index <HASH>..<HASH> 100644
--- a/lib/rake/task_manager.rb
+++ b/lib/rake/task_manager.rb
@@ -111,7 +111,7 @@ module Rake
       if args.empty?
         task_name = key
         arg_names = []
-        deps = value
+        deps = value || []
       else
         task_name = args.shift
         arg_names = key
diff --git a/test/test_rake_definitions.rb b/test/test_rake_definitions.rb
index <HASH>..<HASH> 100644
--- a/test/test_rake_definitions.rb
+++ b/test/test_rake_definitions.rb
@@ -59,6 +59,11 @@ class TestRakeDefinitions < Rake::TestCase
     assert_raises(RuntimeError) { Task[:x].invoke }
   end
 
+  def test_falsey_dependencies
+    task :x => nil
+    assert_equal [], Task[:x].prerequisites
+  end
+
   def test_implicit_file_dependencies
     runs = []
     create_existing_file
Ignore falsey dependencies

When creating Rake tasks programatically, it could so happen that the
prerequisites reach the point of creation as an argument. This change
teaches the Rake DSL to ignore falsey (`nil' or `false') values when
they are specified as the dependencies; this way, programmatic creation
does not have to deal with a special case.