Make deprecated API hidden, replace deprecated API with new one
diff --git a/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/Executors.kt b/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/Executors.kt
index f20753a..67f3b34 100644
--- a/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/Executors.kt
+++ b/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/Executors.kt
@@ -72,7 +72,7 @@
                 ?.schedule(ResumeUndispatchedRunnable(this, continuation), time, unit) }
             catch (e: RejectedExecutionException) { null }
         if (timeout != null)
-            continuation.cancelFutureOnCompletion(timeout)
+            continuation.cancelFutureOnCancellation(timeout)
         else
             DefaultExecutor.scheduleResumeAfterDelay(time, unit, continuation)
     }
diff --git a/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/Future.kt b/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/Future.kt
index 6909b99..3490d14 100644
--- a/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/Future.kt
+++ b/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/Future.kt
@@ -41,7 +41,7 @@
 @Deprecated(
     message = "Disposable handlers on regular completion are no longer supported",
     replaceWith = ReplaceWith("cancelFutureOnCancellation(future)"),
-    level = DeprecationLevel.WARNING)
+    level = DeprecationLevel.HIDDEN)
 public fun CancellableContinuation<*>.cancelFutureOnCompletion(future: Future<*>): DisposableHandle {
     cancelFutureOnCancellation(future)
     return NonDisposableHandle
diff --git a/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/channels/AbstractChannel.kt b/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/channels/AbstractChannel.kt
index 4ce28da..5db28ba 100644
--- a/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/channels/AbstractChannel.kt
+++ b/core/kotlinx-coroutines-core/src/main/kotlin/kotlinx/coroutines/experimental/channels/AbstractChannel.kt
@@ -193,7 +193,7 @@
             when (enqueueResult) {
                 null -> { // enqueued successfully
                     cont.initCancellability() // make it properly cancellable
-                    cont.removeOnCancel(send)
+                    cont.removeOnCancellation(send)
                     return@sc
                 }
                 is Closed<*> -> {
@@ -769,8 +769,8 @@
     // ------ private ------
 
     private fun removeReceiveOnCancel(cont: CancellableContinuation<*>, receive: Receive<*>) {
-        cont.invokeOnCompletion {
-            if (cont.isCancelled && receive.remove())
+        cont.invokeOnCancellation {
+            if (receive.remove())
                 onReceiveDequeued()
         }
     }