diff --git a/api/GenApi.py b/api/GenApi.py
index de7c0fdbb54efcb812a1609ab713ab364d30eef9..1c523deed345e28ce419250c0fb522ef5354f6e7 100644
--- a/api/GenApi.py
+++ b/api/GenApi.py
@@ -911,7 +911,6 @@ cwrap_header = """// {0}
 #include <vector>
 #include <string>
 #include <utility>
-#include <string.h>
 
 #ifndef M_PI
 #define M_PI (3.14159265358979323846)
@@ -960,7 +959,8 @@ template<typename t>
   *p = (char**){0}Malloc(sizeof(char*) * v.size());
   for(size_t i = 0; i < v.size(); ++i){{
     (*p)[i] = (char*){0}Malloc(sizeof(char) * (v[i].size() + 1));
-    strcpy((*p)[i], v[i].c_str());
+    for(size_t j = 0; j < v[i].size(); j++) (*p)[i][j] = v[i][j];
+    (*p)[i][v[i].size()] = '\\0';
   }}
   *size = v.size();
 }}
diff --git a/api/gmsh.h_cwrap b/api/gmsh.h_cwrap
index 44e3c7d7ed5e4be14306ea0851647c986349942d..ab793ba594ce31b042bba9c2b6974744cb56d283 100644
--- a/api/gmsh.h_cwrap
+++ b/api/gmsh.h_cwrap
@@ -25,7 +25,6 @@
 #include <vector>
 #include <string>
 #include <utility>
-#include <string.h>
 
 #ifndef M_PI
 #define M_PI (3.14159265358979323846)
@@ -73,7 +72,8 @@ namespace gmsh {
     *p = (char**)gmshMalloc(sizeof(char*) * v.size());
     for(size_t i = 0; i < v.size(); ++i){
       (*p)[i] = (char*)gmshMalloc(sizeof(char) * (v[i].size() + 1));
-      strcpy((*p)[i], v[i].c_str());
+      for(size_t j = 0; j < v[i].size(); j++) (*p)[i][j] = v[i][j];
+      (*p)[i][v[i].size()] = '\0';
     }
     *size = v.size();
   }
diff --git a/api/gmshc.cpp b/api/gmshc.cpp
index c3a0077f4c4cc0f954946b355c87ddf50d1f125a..0b371eea7ae1d6d87229498cb08143d46c527748 100644
--- a/api/gmshc.cpp
+++ b/api/gmshc.cpp
@@ -46,7 +46,8 @@ void vectorstring2charptrptr(const std::vector<std::string> &v, char ***p, size_
   *p = (char**)gmshMalloc(sizeof(char*) * v.size());
   for(size_t i = 0; i < v.size(); ++i){
     (*p)[i] = (char*)gmshMalloc(sizeof(char) * (v[i].size() + 1));
-    strcpy((*p)[i], v[i].c_str());
+    for(size_t j = 0; j < v[i].size(); j++) (*p)[i][j] = v[i][j];
+    (*p)[i][v[i].size()] = '\0';
   }
   *size = v.size();
 }