diff --git a/env/common.c b/env/common.c
index 842c0f7fd14c591f1834aec3e347c33cb3741434..9b3a26859f6b58bca0818ac5ed0b2a8799d55974 100644
--- a/env/common.c
+++ b/env/common.c
@@ -27,20 +27,6 @@ struct hsearch_data env_htab = {
 	.change_ok = env_flags_validate,
 };
 
-__weak uchar env_get_char_spec(int index)
-{
-	return *(uchar *)(gd->env_addr + index);
-}
-
-uchar env_get_char(int index)
-{
-	/* if env is not set up, or crc was bad, use the default environment */
-	if (!gd->env_valid)
-		return default_environment[index];
-	else
-		return env_get_char_spec(index);
-}
-
 /*
  * Read an environment variable as a boolean
  * Return -1 if variable does not exist (default to true)
diff --git a/env/env.c b/env/env.c
index ac6a583a0231119cbf76e9283b37dcb1bd036f87..a239d93156df8d7e5c184542b3b016c185311d39 100644
--- a/env/env.c
+++ b/env/env.c
@@ -69,11 +69,13 @@ struct env_driver *env_driver_lookup_default(void)
 	return drv;
 }
 
-int env_get_char_new(int index)
+int env_get_char(int index)
 {
 	struct env_driver *drv = env_driver_lookup_default();
 	int ret;
 
+	if (!gd->env_valid)
+		return default_environment[index];
 	if (!drv)
 		return -ENODEV;
 	if (!drv->get_char)
@@ -148,11 +150,6 @@ int env_init(void)
 	return 0;
 }
 
-unsigned char env_get_char_spec(int index)
-{
-	return *(uchar *)(gd->env_addr + index);
-}
-
 void env_relocate_spec(void)
 {
 	env_load();
diff --git a/include/environment.h b/include/environment.h
index 584fd7216d2e05d25d29a391ac802b69cab9e0c4..1df243462e9d9b4626563a2ff00160b54d1d82bb 100644
--- a/include/environment.h
+++ b/include/environment.h
@@ -171,7 +171,6 @@ extern const unsigned char default_environment[];
 extern env_t *env_ptr;
 
 extern void env_relocate_spec(void);
-extern unsigned char env_get_char_spec(int);
 
 #if defined(CONFIG_NEEDS_MANUAL_RELOC)
 extern void env_reloc(void);
@@ -281,9 +280,6 @@ struct env_driver {
 
 extern struct hsearch_data env_htab;
 
-/* Function that returns a character from the environment */
-unsigned char env_get_char(int);
-
 /* Function that updates CRC of the enironment */
 void env_crc_update(void);
 
@@ -314,6 +310,16 @@ int env_import_redund(const char *buf1, const char *buf2);
  */
 struct env_driver *env_driver_lookup_default(void);
 
+/**
+ * env_get_char() - Get a character from the early environment
+ *
+ * This reads from the pre-relocation environemnt
+ *
+ * @index: Index of character to read (0 = first)
+ * @return character read, or -ve on error
+ */
+int env_get_char(int index);
+
 #endif /* DO_DEPS_ONLY */
 
 #endif /* _ENVIRONMENT_H_ */