Index: libcfa/src/collections/string.cfa
===================================================================
--- libcfa/src/collections/string.cfa	(revision e891349fb7fcd052e543e9f994ba7bdc3f0ddad6)
+++ libcfa/src/collections/string.cfa	(revision 7abc3de999f40164616d9d6530aca0aba093a66e)
@@ -45,4 +45,10 @@
 }
 
+void ?{}( string & s, const string & s2, size_t maxlen) {
+    (s.inner) { malloc() };
+    ?{}( *s.inner, *s2.inner, COPY_VALUE, maxlen );
+}
+
+
 void ?{}( string & s, string & c ) {
     ?{}( s, (const string &) c );
@@ -51,6 +57,5 @@
 void ?{}( string & s, const char c ) {
     (s.inner) { malloc() };
-	char cs[2] = { c, '\0' };
-    ?{}( *s.inner, cs );
+    ?{}( *s.inner, c );
 }
 
Index: libcfa/src/collections/string.hfa
===================================================================
--- libcfa/src/collections/string.hfa	(revision e891349fb7fcd052e543e9f994ba7bdc3f0ddad6)
+++ libcfa/src/collections/string.hfa	(revision 7abc3de999f40164616d9d6530aca0aba093a66e)
@@ -34,4 +34,5 @@
 void ?{}(string & s); // empty string
 void ?{}(string & s, const string & s2);
+void ?{}(string & s, const string & s2, size_t maxlen);
 void ?{}(string & s, string & s2);
 
Index: libcfa/src/collections/string_res.hfa
===================================================================
--- libcfa/src/collections/string_res.hfa	(revision e891349fb7fcd052e543e9f994ba7bdc3f0ddad6)
+++ libcfa/src/collections/string_res.hfa	(revision 7abc3de999f40164616d9d6530aca0aba093a66e)
@@ -78,5 +78,9 @@
     (s){ rhs, strlen(rhs) };
 }
-
+static inline void ?{}(string_res & s, char c ) {
+    ?{}( s, &c, 1);
+}
+
+// Deleting the copy constructors makes the compiler reject an attempt to call/return by value
 void ?{}(string_res & s, const string_res & s2) = void;
 void ?{}(string_res & s, string_res & s2) = void;
@@ -86,4 +90,7 @@
 static inline void ?{}(string_res & s, const string_res & src, StrResInitMode mode ) {
     ?{}( s, src, mode, 0, size(src));
+}
+static inline void ?{}(string_res & s, const string_res & src, StrResInitMode mode, size_t maxlen ) {
+    ?{}( s, src, mode, 0, (size(src) > maxlen)?maxlen:size(src) );
 }
 
