diff --git a/kotlin/internal/repositories/repositories.bzl b/kotlin/internal/repositories/repositories.bzl
index e15a165..866f657 100644
--- a/kotlin/internal/repositories/repositories.bzl
+++ b/kotlin/internal/repositories/repositories.bzl
@@ -32,9 +32,9 @@
 
 _KOTLIN_CURRENT_COMPILER_RELEASE = {
     "urls": [
-        "https://github.com/JetBrains/kotlin/releases/download/v1.2.61/kotlin-compiler-1.2.61.zip",
+        "https://github.com/JetBrains/kotlin/releases/download/v1.2.70/kotlin-compiler-1.2.70.zip",
     ],
-    "sha256": "be6d45385029ae99dee38fc77f554bddd49761067a532bfbf6bbf1b7348d5bbf",
+    "sha256": "a23a40a3505e78563100b9e6cfd7f535fbf6593b69a5c470800fbafbeccf8434",
 }
 
 def github_archive(name, repo, commit, build_file_content = None):
diff --git a/src/main/kotlin/io/bazel/kotlin/builder/tasks/jvm/KotlinJvmTaskExecutor.kt b/src/main/kotlin/io/bazel/kotlin/builder/tasks/jvm/KotlinJvmTaskExecutor.kt
index 2f4d3c8..2b7f14e 100644
--- a/src/main/kotlin/io/bazel/kotlin/builder/tasks/jvm/KotlinJvmTaskExecutor.kt
+++ b/src/main/kotlin/io/bazel/kotlin/builder/tasks/jvm/KotlinJvmTaskExecutor.kt
@@ -96,15 +96,12 @@
      */
     private fun JvmCompilationTask.getCommonArgs(): MutableList<String> {
         val args = mutableListOf<String>()
-
-        // use -- for flags not meant for the kotlin compiler
         args.addAll(
             "-cp", inputs.joinedClasspath,
             "-api-version", info.toolchainInfo.common.apiVersion,
             "-language-version", info.toolchainInfo.common.languageVersion,
             "-jvm-target", info.toolchainInfo.jvm.jvmTarget,
-            // https://github.com/bazelbuild/rules_kotlin/issues/69: remove once jetbrains adds a flag for it.
-            "--friend-paths", info.friendPathsList.joinToString(File.pathSeparator)
+            "-Xfriend-paths=${info.friendPathsList.joinToString(File.pathSeparator)}"
         )
 
         args
diff --git a/src/main/kotlin/io/bazel/kotlin/compiler/BazelK2JVMCompiler.kt b/src/main/kotlin/io/bazel/kotlin/compiler/BazelK2JVMCompiler.kt
index 061b962..69fb631 100644
--- a/src/main/kotlin/io/bazel/kotlin/compiler/BazelK2JVMCompiler.kt
+++ b/src/main/kotlin/io/bazel/kotlin/compiler/BazelK2JVMCompiler.kt
@@ -16,42 +16,15 @@
 package io.bazel.kotlin.compiler
 
 import org.jetbrains.kotlin.cli.common.ExitCode
-import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
 import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
 import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector
 import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler
 import org.jetbrains.kotlin.config.Services
-import java.io.File
 
 @Suppress("unused")
 class BazelK2JVMCompiler(private val delegate: K2JVMCompiler = K2JVMCompiler()) {
-    private fun createArgs(args: Array<out String>): K2JVMCompilerArguments {
-        var friendsPaths: Array<String>? = null
-
-        val tally = mutableListOf<String>()
-        var i = 0
-        do {
-            when {
-            // https://github.com/bazelbuild/rules_kotlin/issues/69: remove once jetbrains adds a flag for it.
-                args[i].startsWith("--friend-paths") -> {
-                    i++
-                    friendsPaths = args[i].split(File.pathSeparator).toTypedArray()
-                }
-                else -> tally += args[i]
-            }
-            i++
-        } while (i < args.size)
-
-        return delegate.createArguments().also {
-            delegate.parseArguments(tally.toTypedArray(), it)
-            if (friendsPaths != null) {
-                it.friendPaths = friendsPaths
-            }
-        }
-    }
-
     fun exec(errStream: java.io.PrintStream, vararg args: kotlin.String): ExitCode {
-        val arguments = createArgs(args)
+        val arguments = delegate.createArguments().also { delegate.parseArguments(args, it) }
         val collector = PrintingMessageCollector(errStream, MessageRenderer.PLAIN_RELATIVE_PATHS, arguments.verbose)
         return delegate.exec(collector, Services.EMPTY, arguments)
     }
