diff --git a/src/start.rs b/src/start.rs
index 9ec0eb76deab941012726530e1937528df3193d3..33d9d7e23fbdedafef7f7fbf7d5dcf214a53a47a 100644
--- a/src/start.rs
+++ b/src/start.rs
@@ -106,7 +106,9 @@ extern "C" fn init_array() {
     io_init();
 
     unsafe {
-        platform::environ = __relibc_init_environ;
+        if platform::environ.is_null() {
+            platform::environ = __relibc_init_environ;
+        }
     }
 
     extern "C" {