diff --git a/docs/kotlin/kotlin.html b/docs/kotlin/kotlin.html
index 38077ff..9569070 100644
--- a/docs/kotlin/kotlin.html
+++ b/docs/kotlin/kotlin.html
@@ -162,9 +162,6 @@
           <pre>kotlin_repositories(<a href="#kotlin_repositories.kotlin_release_version">kotlin_release_version</a>)</pre>
 
           <p>Call this in the WORKSPACE file to setup the Kotlin rules.</p>
-<p>Args:a
-  kotlin_release_version: The kotlin compiler release version. If this is not set the latest release version is
-  chosen by default.</p>
 
 
           <h3 id="kotlin_repositories_args">Attributes</h3>
@@ -179,7 +176,8 @@
       <td><code>kotlin_release_version</code></td>
       <td>
         <p><code>Unknown; Optional</code></p>
-        
+        <p>The kotlin compiler release version. If this is not set the latest release version is
+chosen by default.</p>
       </td>
     </tr>
   </tbody>
@@ -197,7 +195,7 @@
 
           <h2 id="kt_jvm_binary">kt_jvm_binary</h2>
 
-          <pre>kt_jvm_binary(<a href="#kt_jvm_binary.name">name</a>, <a href="#kt_jvm_binary.deps">deps</a>, <a href="#kt_jvm_binary.data">data</a>, <a href="#kt_jvm_binary.resources">resources</a>, <a href="#kt_jvm_binary.srcs">srcs</a>, <a href="#kt_jvm_binary.jvm_flags">jvm_flags</a>, <a href="#kt_jvm_binary.main_class">main_class</a>, <a href="#kt_jvm_binary.plugins">plugins</a>, <a href="#kt_jvm_binary.resource_jars">resource_jars</a>, <a href="#kt_jvm_binary.resource_strip_prefix">resource_strip_prefix</a>, <a href="#kt_jvm_binary.runtime_deps">runtime_deps</a>)</pre>
+          <pre>kt_jvm_binary(<a href="#kt_jvm_binary.name">name</a>, <a href="#kt_jvm_binary.deps">deps</a>, <a href="#kt_jvm_binary.data">data</a>, <a href="#kt_jvm_binary.resources">resources</a>, <a href="#kt_jvm_binary.srcs">srcs</a>, <a href="#kt_jvm_binary.jvm_flags">jvm_flags</a>, <a href="#kt_jvm_binary.main_class">main_class</a>, <a href="#kt_jvm_binary.module_name">module_name</a>, <a href="#kt_jvm_binary.plugins">plugins</a>, <a href="#kt_jvm_binary.resource_jars">resource_jars</a>, <a href="#kt_jvm_binary.resource_strip_prefix">resource_strip_prefix</a>, <a href="#kt_jvm_binary.runtime_deps">runtime_deps</a>)</pre>
 
           <p>Builds a Java archive ("jar file"), plus a wrapper shell script with the same name as the rule. The wrapper shell script uses a classpath that includes,
 among other things, a jar file for each library on which the binary depends.</p>
@@ -263,6 +261,14 @@
         <p>Name of class with main() method to use as entry point.</p>
       </td>
     </tr>
+    <tr id="kt_jvm_binary.module_name">
+      <td><code>module_name</code></td>
+      <td>
+        <p><code>String; Optional; Default is ''</code></p>
+        <p>The name of the module, if not provided the module name is derived from the label. --e.g., <code>//some/package/path:label_name</code> is translated to
+<code>some_package_path-label_name</code>.</p>
+      </td>
+    </tr>
     <tr id="kt_jvm_binary.plugins">
       <td><code>plugins</code></td>
       <td>
@@ -361,7 +367,7 @@
 
           <h2 id="kt_jvm_library">kt_jvm_library</h2>
 
-          <pre>kt_jvm_library(<a href="#kt_jvm_library.name">name</a>, <a href="#kt_jvm_library.deps">deps</a>, <a href="#kt_jvm_library.data">data</a>, <a href="#kt_jvm_library.resources">resources</a>, <a href="#kt_jvm_library.srcs">srcs</a>, <a href="#kt_jvm_library.exports">exports</a>, <a href="#kt_jvm_library.plugins">plugins</a>, <a href="#kt_jvm_library.resource_jars">resource_jars</a>, <a href="#kt_jvm_library.resource_strip_prefix">resource_strip_prefix</a>, <a href="#kt_jvm_library.runtime_deps">runtime_deps</a>)</pre>
+          <pre>kt_jvm_library(<a href="#kt_jvm_library.name">name</a>, <a href="#kt_jvm_library.deps">deps</a>, <a href="#kt_jvm_library.data">data</a>, <a href="#kt_jvm_library.resources">resources</a>, <a href="#kt_jvm_library.srcs">srcs</a>, <a href="#kt_jvm_library.exports">exports</a>, <a href="#kt_jvm_library.module_name">module_name</a>, <a href="#kt_jvm_library.plugins">plugins</a>, <a href="#kt_jvm_library.resource_jars">resource_jars</a>, <a href="#kt_jvm_library.resource_strip_prefix">resource_strip_prefix</a>, <a href="#kt_jvm_library.runtime_deps">runtime_deps</a>)</pre>
 
           <p>This rule compiles and links Kotlin and Java sources into a .jar file.</p>
 
@@ -419,6 +425,14 @@
 This is not true for regular (non-exported) deps.</p>
       </td>
     </tr>
+    <tr id="kt_jvm_library.module_name">
+      <td><code>module_name</code></td>
+      <td>
+        <p><code>String; Optional; Default is ''</code></p>
+        <p>The name of the module, if not provided the module name is derived from the label. --e.g., <code>//some/package/path:label_name</code> is translated to
+<code>some_package_path-label_name</code>.</p>
+      </td>
+    </tr>
     <tr id="kt_jvm_library.plugins">
       <td><code>plugins</code></td>
       <td>
@@ -455,7 +469,7 @@
 
           <h2 id="kt_jvm_test">kt_jvm_test</h2>
 
-          <pre>kt_jvm_test(<a href="#kt_jvm_test.name">name</a>, <a href="#kt_jvm_test.deps">deps</a>, <a href="#kt_jvm_test.data">data</a>, <a href="#kt_jvm_test.resources">resources</a>, <a href="#kt_jvm_test.srcs">srcs</a>, <a href="#kt_jvm_test.jvm_flags">jvm_flags</a>, <a href="#kt_jvm_test.plugins">plugins</a>, <a href="#kt_jvm_test.resource_jars">resource_jars</a>, <a href="#kt_jvm_test.resource_strip_prefix">resource_strip_prefix</a>, <a href="#kt_jvm_test.runtime_deps">runtime_deps</a>, <a href="#kt_jvm_test.test_class">test_class</a>)</pre>
+          <pre>kt_jvm_test(<a href="#kt_jvm_test.name">name</a>, <a href="#kt_jvm_test.deps">deps</a>, <a href="#kt_jvm_test.data">data</a>, <a href="#kt_jvm_test.resources">resources</a>, <a href="#kt_jvm_test.srcs">srcs</a>, <a href="#kt_jvm_test.jvm_flags">jvm_flags</a>, <a href="#kt_jvm_test.module_name">module_name</a>, <a href="#kt_jvm_test.plugins">plugins</a>, <a href="#kt_jvm_test.resource_jars">resource_jars</a>, <a href="#kt_jvm_test.resource_strip_prefix">resource_strip_prefix</a>, <a href="#kt_jvm_test.runtime_deps">runtime_deps</a>, <a href="#kt_jvm_test.test_class">test_class</a>)</pre>
 
           <p>Setup a simple kotlin_test.</p>
 <p><strong>Notes:</strong></p>
@@ -515,6 +529,14 @@
         <p>A list of flags to embed in the wrapper script generated for running this binary. Note: does not yet support make variable substitution.</p>
       </td>
     </tr>
+    <tr id="kt_jvm_test.module_name">
+      <td><code>module_name</code></td>
+      <td>
+        <p><code>String; Optional; Default is ''</code></p>
+        <p>The name of the module, if not provided the module name is derived from the label. --e.g., <code>//some/package/path:label_name</code> is translated to
+<code>some_package_path-label_name</code>.</p>
+      </td>
+    </tr>
     <tr id="kt_jvm_test.plugins">
       <td><code>plugins</code></td>
       <td>
diff --git a/kotlin/kotlin.bzl b/kotlin/kotlin.bzl
index 5d74015..0d2b5b0 100644
--- a/kotlin/kotlin.bzl
+++ b/kotlin/kotlin.bzl
@@ -200,6 +200,7 @@
         default = [],
         aspects = [_kt_jvm_plugin_aspect],
     ),
+    "module_name": attr.string()
 }.items())
 
 _runnable_common_attr = dict(_common_attr.items() + {
@@ -259,7 +260,7 @@
 
 kt_jvm_library = rule(
     attrs = dict(_common_attr.items() + {
-        "exports": attr.label_list(default = []),
+        "exports": attr.label_list(default = [])
     }.items()),
     outputs = _common_outputs,
     implementation = _kotlin_library_impl,
@@ -282,6 +283,8 @@
     unlike them, not on the compile-time classpath.
   data: The list of files needed by this rule at runtime. See general comments about `data` at [Attributes common to all build rules](https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes).
   deps: A list of dependencies of this rule.See general comments about `deps` at [Attributes common to all build rules](https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes).
+  module_name: The name of the module, if not provided the module name is derived from the label. --e.g., `//some/package/path:label_name` is translated to
+    `some_package_path-label_name`.
 """
 
 kt_jvm_binary = rule(
diff --git a/kotlin/rules/compile.bzl b/kotlin/rules/compile.bzl
index 59348bb..5000d20 100644
--- a/kotlin/rules/compile.bzl
+++ b/kotlin/rules/compile.bzl
@@ -56,7 +56,8 @@
         "--kotlin_jvm_target", tc.jvm_target,
         "--kotlin_api_version", tc.api_version,
         "--kotlin_language_version", tc.language_version,
-        "--kotlin_passthrough_flags", "-Xcoroutines=%s" % tc.coroutines 
+        "--kotlin_module_name", getattr(ctx.attr, "module_name", ""),
+        "--kotlin_passthrough_flags", "-Xcoroutines=%s" % tc.coroutines
     ]
     # Collect and prepare plugin descriptor for the worker.
     plugin_info=_merge_plugin_infos(ctx.attr.plugins + ctx.attr.deps)
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/KotlinMainCompile.kt b/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/KotlinMainCompile.kt
index 578a48c..de78269 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/KotlinMainCompile.kt
+++ b/kotlin/workers/src/io/bazel/ruleskotlin/workers/compilers/jvm/actions/KotlinMainCompile.kt
@@ -27,6 +27,7 @@
 import io.bazel.ruleskotlin.workers.model.Metas
 import io.bazel.ruleskotlin.workers.utils.addAll
 import io.bazel.ruleskotlin.workers.utils.annotationProcessingGeneratedJavaSources
+import io.bazel.ruleskotlin.workers.utils.moduleName
 
 // The Kotlin compiler is not suited for javac compilation as of 1.2.21. The errors are not conveyed directly and would need to be preprocessed, also javac
 // invocations Configured via Kotlin use eager analysis in some corner cases this can result in classpath exceptions from the Java Compiler..
@@ -58,7 +59,7 @@
         }
 
         args
-                .addAll("-module-name", Metas.TARGET[ctx])
+                .addAll("-module-name", ctx.moduleName)
                 .addAll("-d", compileDirectories.classes.toString())
 
         Flags.KOTLIN_PASSTHROUGH_FLAGS[ctx]?.takeIf { it.isNotBlank() }?.also { args.addAll(it.split(" ")) }
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/Flags.kt b/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/Flags.kt
index 9e8deb5..5b2461e 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/Flags.kt
+++ b/kotlin/workers/src/io/bazel/ruleskotlin/workers/model/Flags.kt
@@ -34,9 +34,12 @@
     val KOTLIN_API_VERSION = Flag.Optional("--kotlin_api_version", "-api-version")
     val KOTLIN_LANGUAGE_VERSION = Flag.Optional("--kotlin_language_version", "-language-version")
     val KOTLIN_JVM_TARGET = Flag.Optional("--kotlin_jvm_target", "-jvm-target")
+
     /**
      * These flags are passed through to the compiler verbatim, the rules ensure they are safe. These flags are to toggle features or they carry a single value
      * so the string is tokenized by space.
      */
     val KOTLIN_PASSTHROUGH_FLAGS = Flag.Optional("--kotlin_passthrough_flags")
+
+    val KOTLIN_MODULE_NAME = Flag.Optional("--kotlin_module_name")
 }
\ No newline at end of file
diff --git a/kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/MiscUtils.kt b/kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/MiscUtils.kt
index 5ec7d8d..3e76387 100644
--- a/kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/MiscUtils.kt
+++ b/kotlin/workers/src/io/bazel/ruleskotlin/workers/utils/MiscUtils.kt
@@ -16,4 +16,13 @@
 
 package io.bazel.ruleskotlin.workers.utils
 
-fun <T, C: MutableCollection<T>> C.addAll(vararg entries: T): C = this.also { addAll(entries) }
\ No newline at end of file
+import io.bazel.ruleskotlin.workers.Context
+import io.bazel.ruleskotlin.workers.model.Flags
+import io.bazel.ruleskotlin.workers.model.Metas
+
+fun <T, C: MutableCollection<T>> C.addAll(vararg entries: T): C = this.also { addAll(entries) }
+
+fun String?.supplyIfNullOrBlank(s: () -> String): String = this?.takeIf { it.isNotBlank() } ?: s()
+
+val Context.moduleName: String
+    get() = Flags.KOTLIN_MODULE_NAME[this].supplyIfNullOrBlank { "${Metas.PKG[this].trimStart { it == '/' }.replace('/', '_')}-${Metas.TARGET[this]}" }
diff --git a/tests/smoke/BUILD b/tests/smoke/BUILD
index 77c4b5e..3d61449 100644
--- a/tests/smoke/BUILD
+++ b/tests/smoke/BUILD
@@ -103,6 +103,12 @@
     data=glob(["data/*"]),
 )
 
+kt_jvm_library(
+    name="modulename",
+    srcs=glob(["helloworld/Main.kt"]),
+    module_name = "hello-module"
+)
+
 genrule(
     name="helloworld_host_config_test",
     tools=["//tests/smoke:helloworld"],
diff --git a/tests/smoke/basic_tests.py b/tests/smoke/basic_tests.py
index 47589c3..f9b1d5f 100644
--- a/tests/smoke/basic_tests.py
+++ b/tests/smoke/basic_tests.py
@@ -41,7 +41,12 @@
     def test_uses_target_name_as_default_module_name(self):
         """tests that the target name is used as the default module name."""
         jar = self.buildJarGetZipFile("helloworld", "jar")
-        self.assertJarContains(jar, "META-INF/helloworld.kotlin_module")
+        self.assertJarContains(jar, "META-INF/tests_smoke-helloworld.kotlin_module")
+
+    def test_module_name_is_used_if_provided(self):
+        """tests that the target name is used as the default module name."""
+        jar = self.buildJarGetZipFile("modulename", "jar")
+        self.assertJarContains(jar, "META-INF/hello-module.kotlin_module")
 
     def test_conventional_strip_resources(self):
         jar = self.buildJarGetZipFile("conventional_strip_resources", "jar")
