diff --git a/lib/simplekit.rb b/lib/simplekit.rb
index e4ef4d23b16186275efefbcd3ae3334e0462400c..82e3155d514cc674d71af6f8cd826254145af732 100644
--- a/lib/simplekit.rb
+++ b/lib/simplekit.rb
@@ -54,7 +54,7 @@ module SimpleKit
     #   - +args+ -> zero or more named arguments to pass to the event
     #     at invocation time. These should be specified with labels, and
     #     consequently they can be placed in any order.
-    def schedule(event, delay, **args)
+    def schedule(event, delay, args = {})
       raise 'Model scheduled event with negative delay.' if delay < 0
       @event_list.push EventNotice.new(event, @model_time, delay, args)
     end
@@ -65,9 +65,10 @@ module SimpleKit
     # all be a match with the corresponding +args+ of the scheduled event
     # in order for the cancellation to apply, but +args+ which are not
     # specified do not affect the target event matching.
-    def cancel(event, **args)
+    def cancel(event, args = {})
       @cancel_set[event] ||= Set.new
-      @cancel_set[event].add(args.empty? ? nil : args)
+      # @cancel_set[event].add(args.empty? ? nil : args)
+      @cancel_set[event].add(args)
     end
 
     # Cancel all currently scheduled events of type +event+.
@@ -96,7 +97,7 @@ module SimpleKit
         if current_event.args.empty?
           @user_model.send(current_event.event)
         else
-          @user_model.send(current_event.event, current_event.args)
+          @user_model.send(current_event.event, **current_event.args)
         end
       end
     end