diff --git a/src/libstd/process.rs b/src/libstd/process.rs
index b42ad29034c88..4d612af80010d 100644
--- a/src/libstd/process.rs
+++ b/src/libstd/process.rs
@@ -1583,23 +1583,24 @@ pub fn id() -> u32 {
 /// The default implementations are returning `libc::EXIT_SUCCESS` to indicate
 /// a successful execution. In case of a failure, `libc::EXIT_FAILURE` is returned.
 #[cfg_attr(not(test), lang = "termination")]
-#[unstable(feature = "termination_trait_lib", issue = "43301")]
+#[stable(feature = "termination_trait_lib", since = "1.33.0")]
 #[rustc_on_unimplemented(
   message="`main` has invalid return type `{Self}`",
   label="`main` can only return types that implement `{Termination}`")]
 pub trait Termination {
     /// Is called to get the representation of the value as status code.
     /// This status code is returned to the operating system.
+    #[stable(feature = "termination_trait_lib", since = "1.33.0")]
     fn report(self) -> i32;
 }
 
-#[unstable(feature = "termination_trait_lib", issue = "43301")]
+#[stable(feature = "termination_trait_lib", since = "1.33.0")]
 impl Termination for () {
     #[inline]
     fn report(self) -> i32 { ExitCode::SUCCESS.report() }
 }
 
-#[unstable(feature = "termination_trait_lib", issue = "43301")]
+#[stable(feature = "termination_trait_lib", since = "1.33.0")]
 impl<E: fmt::Debug> Termination for Result<(), E> {
     fn report(self) -> i32 {
         match self {
@@ -1609,12 +1610,12 @@ impl<E: fmt::Debug> Termination for Result<(), E> {
     }
 }
 
-#[unstable(feature = "termination_trait_lib", issue = "43301")]
+#[stable(feature = "termination_trait_lib", since = "1.33.0")]
 impl Termination for ! {
     fn report(self) -> i32 { self }
 }
 
-#[unstable(feature = "termination_trait_lib", issue = "43301")]
+#[stable(feature = "termination_trait_lib", since = "1.33.0")]
 impl<E: fmt::Debug> Termination for Result<!, E> {
     fn report(self) -> i32 {
         let Err(err) = self;
@@ -1623,7 +1624,7 @@ impl<E: fmt::Debug> Termination for Result<!, E> {
     }
 }
 
-#[unstable(feature = "termination_trait_lib", issue = "43301")]
+#[stable(feature = "termination_trait_lib", since = "1.33.0")]
 impl Termination for ExitCode {
     #[inline]
     fn report(self) -> i32 {
diff --git a/src/libtest/lib.rs b/src/libtest/lib.rs
index 1c8734913c723..5fb594e302f6c 100644
--- a/src/libtest/lib.rs
+++ b/src/libtest/lib.rs
@@ -39,7 +39,6 @@
 #![feature(set_stdio)]
 #![feature(panic_unwind)]
 #![feature(staged_api)]
-#![feature(termination_trait_lib)]
 #![feature(test)]
 
 extern crate getopts;
diff --git a/src/test/run-pass/rfcs/rfc-1937-termination-trait/termination-trait-for-impl-termination.rs b/src/test/run-pass/rfcs/rfc-1937-termination-trait/termination-trait-for-impl-termination.rs
index 6c3f2fe4ea5c6..2153c767e2091 100644
--- a/src/test/run-pass/rfcs/rfc-1937-termination-trait/termination-trait-for-impl-termination.rs
+++ b/src/test/run-pass/rfcs/rfc-1937-termination-trait/termination-trait-for-impl-termination.rs
@@ -9,6 +9,5 @@
 // except according to those terms.
 
 // run-pass
-#![feature(termination_trait_lib)]
 
 fn main() -> impl std::process::Termination { }