#ifndef WX_PRECOMP
     #include "wx/stringimpl.h"
+    #include "wx/wxcrt.h"
 #endif
 
 #include <ctype.h>
 
   // if the length is not given, assume the string to be NUL terminated
   if ( nLength == npos ) {
-    wxASSERT_MSG( nPos <= Strsize(psz), _T("index out of bounds") );
+    wxASSERT_MSG( nPos <= wxStrlen(psz), _T("index out of bounds") );
 
-    nLength = Strsize(psz + nPos);
+    nLength = wxStrlen(psz + nPos);
   }
 
   STATISTICS_ADD(InitialLength, nLength);
 {
     wxASSERT( nPos <= length() );
 
-    if ( n == npos ) n = Strsize(sz);
+    if ( n == npos ) n = wxStrlen(sz);
     if ( n == 0 ) return *this;
 
     if ( !Alloc(length() + n) || !CopyBeforeWrite() ) {
 // assigns C string
 wxStringImpl& wxStringImpl::operator=(const wxStringCharType *psz)
 {
-  if ( !AssignCopy(Strsize(psz), psz) ) {
+  if ( !AssignCopy(wxStrlen(psz), psz) ) {
     wxFAIL_MSG( _T("out of memory in wxStringImpl::operator=(const wxStringCharType *)") );
   }
   return *this;
   return true;
 }
 
-#if !wxUSE_UNICODE_UTF8
 // get the pointer to writable buffer of (at least) nLen bytes
-wxChar *wxStringImpl::DoGetWriteBuf(size_t nLen)
+wxStringCharType *wxStringImpl::DoGetWriteBuf(size_t nLen)
 {
   if ( !AllocBeforeWrite(nLen) ) {
     // allocation failure handled by caller
 // put string back in a reasonable state after GetWriteBuf
 void wxStringImpl::DoUngetWriteBuf()
 {
-  DoUngetWriteBuf(Strsize(m_pchData));
+  DoUngetWriteBuf(wxStrlen(m_pchData));
 }
 
 void wxStringImpl::DoUngetWriteBuf(size_t nLen)
   pData->nDataLength = nLen;
   pData->Validate(true);
 }
-#endif // !wxUSE_UNICODE_UTF8
 
 #endif // !wxUSE_STL_BASED_WXSTRING