Index: libcfa/src/containers/string_res.cfa
===================================================================
--- libcfa/src/containers/string_res.cfa	(revision 1733184745d75fd7171f4d0538f55338a9057c01)
+++ libcfa/src/containers/string_res.cfa	(revision 7770cc8a0981a8a6485f2ec3ee49b6a51f60afde)
@@ -49,5 +49,5 @@
 static void ?{}( VbyteHeap &, size_t = 1000 );
 static void ^?{}( VbyteHeap & );
-static void ByteCopy( char *, int, int, char *, int, int ); // copy a block of bytes from one location in the heap to another
+
 static int ByteCmp( char *, int, int, char *, int, int );	// compare 2 blocks of bytes
 static char *VbyteAlloc( VbyteHeap &, int );			// allocate a block bytes in the heap
@@ -875,21 +875,4 @@
 //######################### VbyteHeap #########################
 
-// Move characters from one location in the byte-string area to another. The routine handles the following situations:
-//
-// if the |Src| > |Dst| => truncate
-// if the |Dst| > |Src| => pad Dst with blanks
-
-void ByteCopy( char *Dst, int DstStart, int DstLnth, char *Src, int SrcStart, int SrcLnth ) {
-    for ( int i = 0; i < DstLnth; i += 1 ) {
-      if ( i == SrcLnth ) {				// |Dst| > |Src|
-	    for ( ; i < DstLnth; i += 1 ) {		// pad Dst with blanks
-		Dst[DstStart + i] = ' ';
-	    } // for
-	    break;
-	} // exit
-	Dst[DstStart + i] = Src[SrcStart + i];
-    } // for
-} // ByteCopy
-
 // Compare two byte strings in the byte-string area. The routine returns the following values:
 //
@@ -955,5 +938,5 @@
     h = Header.flink;					// ignore header node
     for (;;) {
-		ByteCopy( EndVbyte, 0, h->lnth, h->s, 0, h->lnth );
+		memmove( EndVbyte, h->s, h->lnth );
 		obase = h->s;
 		h->s = EndVbyte;
@@ -997,4 +980,6 @@
     int AmountUsed, AmountFree;
 
+//    assert( false );
+
     AmountUsed = 0;
     for ( HandleNode *i = Header.flink; i != &Header; i = i->flink ) { // calculate amount of byte area used
