diff --git a/ofstd/libsrc/ofstring.cc b/ofstd/libsrc/ofstring.cc
index a008844..6bbe851 100644
--- a/ofstd/libsrc/ofstring.cc
+++ b/ofstd/libsrc/ofstring.cc
@@ -76,7 +76,7 @@ OFString::OFString (const char* s, size_t n)
     if (n == OFString_npos) {
         n = strlen(s);
     }
-    reserve(n);
+    reserve(n + 1);
     OFBitmanipTemplate<char>::copyMem(s, this->theCString, n);
     this->theCString[n] = '\0';
     this->theSize = n;
@@ -87,9 +87,7 @@ OFString::OFString (const char* s)
 {
     s = verify_string(s);
     const size_t n = strlen(s);
-    reserve(n);
-    // Because we used strlen() to figure out the length we can use strcpy()
-    // since there won't be any '\0' bytes in the string.
+    reserve(n + 1);
     strcpy(this->theCString, s);
     this->theSize = n;
 }
@@ -98,7 +96,7 @@ OFString::OFString (const char* s)
 OFString::OFString (size_t rep, char c)
     : theCString(NULL), theSize(0), theCapacity(0)
 {
-    reserve(rep);
+    reserve(rep + 1);
     for (size_t i = 0; i < rep; i++) {
         this->theCString[i] = c;
     }
