--- ext/standard/basic_functions.c.orig 2008-06-09 14:06:40.000000000 +0200 +++ ext/standard/basic_functions.c 2008-06-09 14:08:28.000000000 +0200 @@ -3859,7 +3860,7 @@ SetEnvironmentVariable(pe->key, "bugbug"); #endif putenv(pe->previous_value); -# if defined(PHP_WIN32) +# if defined(PHP_WIN32) || __FreeBSD_version < 700050 efree(pe->previous_value); # endif } else { @@ -4461,7 +4462,7 @@ pe.previous_value = NULL; for (env = environ; env != NULL && *env != NULL; env++) { if (!strncmp(*env, pe.key, pe.key_len) && (*env)[pe.key_len] == '=') { /* found it */ -#if defined(PHP_WIN32) +#if defined(PHP_WIN32) || __FreeBSD_version < 700050 /* must copy previous value because MSVCRT's putenv can free the string without notice */ pe.previous_value = estrdup(*env); #else