--- a/src/utils/execmd.cpp
+++ b/src/utils/execmd.cpp
@@ -1,5 +1,5 @@
 #ifndef lint
-static char rcsid[] = "@(#$Id: execmd.cpp,v 1.7 2005-11-18 13:52:48 dockes Exp $ (C) 2004 J.F.Dockes";
+static char rcsid[] = "@(#$Id: execmd.cpp,v 1.8 2005-11-21 17:18:58 dockes Exp $ (C) 2004 J.F.Dockes";
 #endif
 #ifndef TEST_EXECMD
 #include <unistd.h>
@@ -8,7 +8,9 @@
 #include <sys/select.h>
 #include <fcntl.h>
 #include <errno.h>
-
+#ifdef PUTENV_ARG_NOT_CONST
+#include <string.h>
+#endif
 #include <list>
 #include <string>
 #include <sstream>
@@ -191,7 +193,11 @@
 #endif
 
 	for (it = env.begin(); it != env.end(); it++) {
+#ifdef PUTENV_ARG_NOT_CONST
+	    ::putenv(strdup(it->c_str()));
+#else
 	    ::putenv(it->c_str());
+#endif
 	}
 	
 	execvp(cmd.c_str(), (char *const*)argv);