diff --git a/lib/celluloid/supervision_group.rb b/lib/celluloid/supervision_group.rb
index <HASH>..<HASH> 100644
--- a/lib/celluloid/supervision_group.rb
+++ b/lib/celluloid/supervision_group.rb
@@ -53,7 +53,7 @@ module Celluloid
       end
 
       def prepare_options(args, options = {})
-        ( ( args.length == 1 and args[0].is_a? Hash ) ? args[0] : { :args => args } ).merge( options )
+        ( ( args.length == 1 and args[0].is_a? Hash and args[0][:args] ) ? args[0] : { :args => args } ).merge( options )
       end
     end
fix problem where hash passed as single argument ( NOT an options hash containing :args ) is not passed as an argument