diff --git a/auto/generate_test_runner.rb b/auto/generate_test_runner.rb
index 8a081f3..1ae56f0 100644
--- a/auto/generate_test_runner.rb
+++ b/auto/generate_test_runner.rb
@@ -83,7 +83,7 @@ class UnityTestRunnerGenerator
 
     if (@options[:header_file] && !@options[:header_file].empty?)
       File.open(@options[:header_file], 'w') do |output|
-        create_h_file(output, @options[:header_file], tests, testfile_includes)
+        create_h_file(output, @options[:header_file], tests, testfile_includes, used_mocks)
       end
     end
   end
@@ -313,11 +313,13 @@ class UnityTestRunnerGenerator
     output.puts("}")
   end
 
-  def create_h_file(output, filename, tests, testfile_includes)
-    filename = filename.upcase.gsub(/(?:\/|\\|\.)*/,'_')
+  def create_h_file(output, filename, tests, testfile_includes, used_mocks)
+    filename = File.basename(filename).gsub(/[-\/\\\.\,\s]/, "_").upcase
     output.puts("/* AUTOGENERATED FILE. DO NOT EDIT. */")
     output.puts("#ifndef _#{filename}")
     output.puts("#define _#{filename}\n\n")
+    output.puts("#include \"#{@options[:framework].to_s}.h\"")
+    output.puts('#include "cmock.h"') unless (used_mocks.empty?)
     @options[:includes].flatten.uniq.compact.each do |inc|
       output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}")
     end
@@ -325,7 +327,13 @@ class UnityTestRunnerGenerator
       output.puts("#include #{inc.include?('<') ? inc : "\"#{inc.gsub('.h','')}.h\""}")
     end
     output.puts "\n"
-    tests.each {|test| output.puts("void #{test[:test]}(#{test[:params]});") }
+    tests.each do |test| 
+      if ((test[:params].nil?) or (test[:params].empty?))
+        output.puts("void #{test[:test]}(void);")
+      else
+        output.puts("void #{test[:test]}(#{test[:params]});")
+      end
+    end
     output.puts("#endif\n\n")
   end
 end
@@ -341,10 +349,10 @@ if ($0 == __FILE__)
         options[:plugins] = [:cexception]; true
       when /\.*\.ya?ml/
         options = UnityTestRunnerGenerator.grab_config(arg); true
-      when /\.*\.h/
-        options[:includes] << arg; true
       when /--(\w+)=\"?(.*)\"?/
         options[$1.to_sym] = $2; true
+      when /\.*\.h/
+        options[:includes] << arg; true
       else false
     end
   end