Replaced lstrlen/lstrcmp by libc equivalents everywhere we don't need
to trap exceptions.

diff --git a/controls/edit.c b/controls/edit.c
index eb5c418..e6f39d8 100644
--- a/controls/edit.c
+++ b/controls/edit.c
@@ -261,7 +261,7 @@
  */
 static inline BOOL EDIT_EM_CanUndo(WND *wnd, EDITSTATE *es)
 {
-	return (es->undo_insert_count || lstrlenA(es->undo_text));
+	return (es->undo_insert_count || strlen(es->undo_text));
 }
 
 
@@ -803,7 +803,7 @@
 
 	case WM_GETTEXTLENGTH:
 		DPRINTF_EDIT_MSG32("WM_GETTEXTLENGTH");
-		result = lstrlenA(es->text);
+		result = strlen(es->text);
 		break;
 
 	case WM_HSCROLL:
@@ -982,7 +982,7 @@
 		}
 		if (!(*cp)) {
 			current_def->ending = END_0;
-			current_def->net_length = lstrlenA(start);
+			current_def->net_length = strlen(start);
 		} else if ((cp > start) && (*(cp - 1) == '\r')) {
 			current_def->ending = END_SOFT;
 			current_def->net_length = cp - start - 1;
@@ -1162,7 +1162,7 @@
                 else
                 {
                     INT low = es->x_offset;
-                    INT high = lstrlenA(es->text) + 1;
+                    INT high = strlen(es->text) + 1;
                     while (low < high - 1)
                     {
                         INT mid = (low + high) / 2;
@@ -1230,7 +1230,7 @@
 static LPSTR EDIT_GetPasswordPointer_SL(WND *wnd, EDITSTATE *es)
 {
 	if (es->style & ES_PASSWORD) {
-		INT len = lstrlenA(es->text);
+		INT len = strlen(es->text);
 		LPSTR text = HeapAlloc(es->heap, 0, len + 1);
 		RtlFillMemory(text, len, es->password_char);
 		text[len] = '\0';
@@ -1368,7 +1368,7 @@
 		return;
 
 	if (end == -1)
-		end = lstrlenA(es->text);
+		end = strlen(es->text);
 
 	ORDER_INT(start, end);
 
@@ -1526,7 +1526,7 @@
 		e = EDIT_CharFromPos(wnd, es, 0x3fffffff,
 			HIWORD(EDIT_EM_PosFromChar(wnd, es, es->selection_end, es->flags & EF_AFTER_WRAP)), &after_wrap);
 	else
-		e = lstrlenA(es->text);
+		e = strlen(es->text);
 	EDIT_EM_SetSel(wnd, es, extend ? es->selection_start : e, e, after_wrap);
 	EDIT_EM_ScrollCaret(wnd, es);
 }
@@ -2039,7 +2039,7 @@
 	else if (es->hloc16)
 		return (HLOCAL)es->hloc16;
 
-	if (!(newBuf = LocalAlloc(LMEM_MOVEABLE, lstrlenA(es->text) + 1))) {
+	if (!(newBuf = LocalAlloc(LMEM_MOVEABLE, strlen(es->text) + 1))) {
 		ERR("could not allocate new 32 bit buffer\n");
 		return 0;
 	}
@@ -2099,7 +2099,7 @@
 		}
 		TRACE("local heap initialized\n");
 	}
-	if (!(newBuf = LOCAL_Alloc(wnd->hInstance, LMEM_MOVEABLE, lstrlenA(es->text) + 1))) {
+	if (!(newBuf = LOCAL_Alloc(wnd->hInstance, LMEM_MOVEABLE, strlen(es->text) + 1))) {
 		ERR("could not allocate new 16 bit buffer\n");
 		return 0;
 	}
@@ -2207,7 +2207,7 @@
 
 	if (!(es->style & ES_MULTILINE))
 		return 0;
-	if (index > lstrlenA(es->text))
+	if (index > strlen(es->text))
 		return es->line_count - 1;
 	if (index == -1)
 		index = min(es->selection_start, es->selection_end);
@@ -2269,7 +2269,7 @@
 	LINEDEF *line_def;
 
 	if (!(es->style & ES_MULTILINE))
-		return lstrlenA(es->text);
+		return strlen(es->text);
 
 	if (index == -1) {
 		/* get the number of remaining non-selected chars of selected lines */
@@ -2343,7 +2343,7 @@
  */
 static LRESULT EDIT_EM_PosFromChar(WND *wnd, EDITSTATE *es, INT index, BOOL after_wrap)
 {
-	INT len = lstrlenA(es->text);
+	INT len = strlen(es->text);
 	INT l;
 	INT li;
 	INT x;
@@ -2408,8 +2408,8 @@
  */
 static void EDIT_EM_ReplaceSel(WND *wnd, EDITSTATE *es, BOOL can_undo, LPCSTR lpsz_replace)
 {
-	INT strl = lstrlenA(lpsz_replace);
-	INT tl = lstrlenA(es->text);
+	INT strl = strlen(lpsz_replace);
+	INT tl = strlen(es->text);
 	INT utl;
 	UINT s;
 	UINT e;
@@ -2430,7 +2430,7 @@
 	if (e != s) {
 		/* there is something to be deleted */
 		if (can_undo) {
-			utl = lstrlenA(es->undo_text);
+			utl = strlen(es->undo_text);
 			if (!es->undo_insert_count && (*es->undo_text && (s == es->undo_position))) {
 				/* undo-buffer is extended to the right */
 				EDIT_MakeUndoFit(wnd, es, utl + e - s);
@@ -2479,7 +2479,7 @@
 			EDIT_EM_EmptyUndoBuffer(wnd, es);
 
 		/* now insert */
-		tl = lstrlenA(es->text);
+		tl = strlen(es->text);
 		for (p = es->text + tl ; p >= es->text + s ; p--)
 			p[strl] = p[0];
 		for (i = 0 , p = es->text + s ; i < strl ; i++)
@@ -2598,7 +2598,7 @@
 			EDIT_UpdateText(wnd, NULL, TRUE);
 		} else if (x > es->format_rect.right) {
 			INT x_last;
-			INT len = lstrlenA(es->text);
+			INT len = strlen(es->text);
 			goal = es->format_rect.right - format_width / HSCROLL_FRACTION;
 			do {
 				es->x_offset++;
@@ -2789,7 +2789,7 @@
 {
 	UINT old_start = es->selection_start;
 	UINT old_end = es->selection_end;
-	UINT len = lstrlenA(es->text);
+	UINT len = strlen(es->text);
 
 	if (start == -1) {
 		start = es->selection_end;
@@ -2926,7 +2926,7 @@
  */
 static BOOL EDIT_EM_Undo(WND *wnd, EDITSTATE *es)
 {
-	INT ulength = lstrlenA(es->undo_text);
+	INT ulength = strlen(es->undo_text);
 	LPSTR utext = HeapAlloc(es->heap, 0, ulength + 1);
 
 	lstrcpyA(utext, es->undo_text);
@@ -3100,7 +3100,7 @@
 	/* delete */
 	EnableMenuItem(popup, 5, MF_BYPOSITION | ((end - start) ? MF_ENABLED : MF_GRAYED));
 	/* select all */
-	EnableMenuItem(popup, 7, MF_BYPOSITION | (start || (end != lstrlenA(es->text)) ? MF_ENABLED : MF_GRAYED));
+	EnableMenuItem(popup, 7, MF_BYPOSITION | (start || (end != strlen(es->text)) ? MF_ENABLED : MF_GRAYED));
 
 	TrackPopupMenu(popup, TPM_LEFTALIGN | TPM_RIGHTBUTTON, x, y, 0, wnd->hwndSelf, NULL);
 	DestroyMenu(menu);
diff --git a/controls/menu.c b/controls/menu.c
index dd8ad99..568b250 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -4370,7 +4370,7 @@
 	switch (MENU_ITEM_TYPE(menu->fType)) {
 	case MF_STRING:
  	    if (menu->text) {
-	        int len = lstrlenA(menu->text);
+	        int len = strlen(menu->text);
 	        if(lpmii->dwTypeData && lpmii->cch) {
 		    if (unicode)
 		        lstrcpynAtoW((LPWSTR) lpmii->dwTypeData, menu->text,
@@ -4401,7 +4401,7 @@
 	    else
 	        lstrcpynA(lpmii->dwTypeData, menu->text, lpmii->cch);
 	}
-	lpmii->cch = lstrlenA(menu->text);
+	lpmii->cch = strlen(menu->text);
     }
 
     if (lpmii->fMask & MIIM_FTYPE)
diff --git a/dlls/shlwapi/path.c b/dlls/shlwapi/path.c
index 4582d49..54f4308 100644
--- a/dlls/shlwapi/path.c
+++ b/dlls/shlwapi/path.c
@@ -484,7 +484,7 @@
 
 	TRACE("%s\n", debugstr_w(lpszPath));
 	if(lpszFileName)
-	  RtlMoveMemory(lpszPath, lpszFileName, (lstrlenW(lpszFileName)+1)*sizeof(WCHAR)); 
+	  RtlMoveMemory(lpszPath, lpszFileName, (strlenW(lpszFileName)+1)*sizeof(WCHAR)); 
 }
 
 /*************************************************************************
@@ -612,7 +612,7 @@
 	
 	if(lpszPath)
 	{
-	  len = lstrlenW(lpszPath);
+	  len = strlenW(lpszPath);
 	  szTemp = CharPrevW(lpszPath, lpszPath+len);
 	  if (! PathIsRootW(lpszPath))
 	  {
@@ -662,7 +662,7 @@
 	{
 	  while (*x==' ') x = CharNextW(x);
 	  if (x!=str) lstrcpyW(str,x);
-	  x=str+lstrlenW(str)-1;
+	  x=str+strlenW(str)-1;
 	  while (*x==' ') x = CharPrevW(str, x);
 	  if (*x==' ') *x='\0';
 	}
@@ -698,7 +698,7 @@
 
 	if(StrChrW(lpszPath,' '))
 	{
-	  int len = lstrlenW(lpszPath);
+	  int len = strlenW(lpszPath);
 	  RtlMoveMemory(lpszPath+1, lpszPath, len*sizeof(WCHAR));
 	  *(lpszPath++) = '"';
 	  lpszPath += len;
@@ -717,7 +717,7 @@
  */
 VOID WINAPI PathUnquoteSpacesA(LPSTR str) 
 {
-	DWORD len = lstrlenA(str);
+	DWORD len = strlen(str);
 
 	TRACE("%s\n",str);
 
@@ -1471,7 +1471,7 @@
  */
 BOOL WINAPI PathCanonicalizeW(LPWSTR pszBuf, LPCWSTR pszPath)
 {
-	int OffsetMin = 0, OffsetSrc = 0, OffsetDst = 0, LenSrc = lstrlenW(pszPath);
+	int OffsetMin = 0, OffsetSrc = 0, OffsetDst = 0, LenSrc = strlenW(pszPath);
 	BOOL bModifyed = FALSE;
 
 	TRACE("%p %s\n", pszBuf, debugstr_w(pszPath));
@@ -1574,7 +1574,7 @@
 	
 	if(!pszPath || !*pszPath) return NULL;
 	if (!(pos = StrChrW(pszPath, '\\')))
-	  return (LPWSTR) pszPath + lstrlenW(pszPath);
+	  return (LPWSTR) pszPath + strlenW(pszPath);
 	pos++;
 	if(pos[0] == '\\') pos++;
 	return pos;
diff --git a/dlls/user/text.c b/dlls/user/text.c
index e588de0..b8c9b8d 100644
--- a/dlls/user/text.c
+++ b/dlls/user/text.c
@@ -382,9 +382,9 @@
         if(unicode)
     	    slen = lstrlenW((LPCWSTR)lp);
     	else if(_32bit)
-    	    slen = lstrlenA((LPCSTR)lp);
+    	    slen = strlen((LPCSTR)lp);
     	else
-    	    slen = lstrlenA((LPCSTR)PTR_SEG_TO_LIN(lp));
+    	    slen = strlen((LPCSTR)PTR_SEG_TO_LIN(lp));
     }
 
     if((cx == 0 || cy == 0) && slen != -1)
diff --git a/files/dos_fs.c b/files/dos_fs.c
index 0c4782d..bfb605d 100644
--- a/files/dos_fs.c
+++ b/files/dos_fs.c
@@ -968,7 +968,7 @@
       /* Check if the file exists and use the existing file name */
       if ( DOSFS_GetFullName ( tmpshortpath, TRUE, &full_name ) ) {
 	lstrcpyA ( tmpshortpath+sp, strrchr ( full_name.short_name, '\\' ) + 1 );
-	sp += lstrlenA ( tmpshortpath+sp );
+	sp += strlen ( tmpshortpath+sp );
 	lp += tmplen;
 	continue;
       }
@@ -981,7 +981,7 @@
 
     lstrcpynA ( shortpath, tmpshortpath, shortlen );
     TRACE("returning %s\n", debugstr_a(shortpath) );
-    tmplen = lstrlenA ( tmpshortpath );
+    tmplen = strlen ( tmpshortpath );
     HeapFree ( GetProcessHeap(), 0, tmpshortpath );
     
     return tmplen;
diff --git a/files/drive.c b/files/drive.c
index 8f5f010..3480c9a 100644
--- a/files/drive.c
+++ b/files/drive.c
@@ -1244,9 +1244,9 @@
       return ret;
     }
     GetLongPathNameA(shortname, longname, MAX_PATHNAME_LEN);
-    ret = lstrlenA( longname ) + 1;
+    ret = strlen( longname ) + 1;
     if (ret > buflen) return ret;
-    lstrcpyA(buf, longname);
+    strcpy(buf, longname);
     return ret - 1;
 }
 
diff --git a/files/file.c b/files/file.c
index 77ce52f..206f460 100644
--- a/files/file.c
+++ b/files/file.c
@@ -463,8 +463,8 @@
         return HFILE_ERROR;
 
     /* Open a console for CONIN$ or CONOUT$ */
-    if (!lstrcmpiA(filename, "CONIN$")) return CONSOLE_OpenHandle( FALSE, access, sa );
-    if (!lstrcmpiA(filename, "CONOUT$")) return CONSOLE_OpenHandle( TRUE, access, sa );
+    if (!strcasecmp(filename, "CONIN$")) return CONSOLE_OpenHandle( FALSE, access, sa );
+    if (!strcasecmp(filename, "CONOUT$")) return CONSOLE_OpenHandle( TRUE, access, sa );
 
     if (DOSFS_GetDevice( filename ))
     {
diff --git a/graphics/win16drv/init.c b/graphics/win16drv/init.c
index d09f25a..6ee437c 100644
--- a/graphics/win16drv/init.c
+++ b/graphics/win16drv/init.c
@@ -206,7 +206,7 @@
     char printerEnabled[20];
     PROFILE_GetWineIniString( "wine", "printer", "off",
                              printerEnabled, sizeof(printerEnabled) );
-    if (lstrcmpiA(printerEnabled,"on"))
+    if (strcasecmp(printerEnabled,"on"))
     {
         MESSAGE("Printing disabled in wine.conf or .winerc file\n");
         MESSAGE("Use \"printer=on\" in the \"[wine]\" section to enable it.\n");
diff --git a/graphics/x11drv/xfont.c b/graphics/x11drv/xfont.c
index b67c94b..70ea998 100644
--- a/graphics/x11drv/xfont.c
+++ b/graphics/x11drv/xfont.c
@@ -429,7 +429,7 @@
 
 static void LFD_GetWeight( fontInfo* fi, LPCSTR lpStr)
 {
-    int j = lstrlenA(lpStr);
+    int j = strlen(lpStr);
     if( j == 1 && *lpStr == '0') 
 	fi->fi_flags |= FI_POLYWEIGHT;
     else if( j == 4 )
@@ -465,7 +465,7 @@
 
 static BOOL LFD_GetSlant( fontInfo* fi, LPCSTR lpStr)
 {
-    int l = lstrlenA(lpStr);
+    int l = strlen(lpStr);
     if( l == 1 )
     {
 	switch( tolower( *lpStr ) )
@@ -486,7 +486,7 @@
 
 static void LFD_GetStyle( fontInfo* fi, LPCSTR lpstr, int dec_style_check)
 {
-    int j = lstrlenA(lpstr);
+    int j = strlen(lpstr);
     if( j > 3 )	/* find out is there "sans" or "script" */
     {
 	j = 0;
@@ -1411,9 +1411,9 @@
 	prev = pfa;
     }
 
-    j = lstrlenA(lpTypeFace) + 1;
+    j = strlen(lpTypeFace) + 1;
     pfa = HeapAlloc( GetProcessHeap(), 0, sizeof(fontAlias) +
-			       j + lstrlenA(lpAlias) + 1 );
+			       j + strlen(lpAlias) + 1 );
     if (pfa)
     {
         if (!prev)
diff --git a/loader/loadorder.c b/loader/loadorder.c
index 5c60b05..4b574dc 100644
--- a/loader/loadorder.c
+++ b/loader/loadorder.c
@@ -514,7 +514,7 @@
 	}
 
 	strcpy(fname, name);
-	if(len >= 4 && (!lstrcmpiA(fname+len-4, ".dll") || !lstrcmpiA(fname+len-4, ".exe")))
+	if(len >= 4 && (!strcasecmp(fname+len-4, ".dll") || !strcasecmp(fname+len-4, ".exe")))
 		fname[len-4] = '\0';
 
 	lo.modulename = fname;
diff --git a/loader/ne/convert.c b/loader/ne/convert.c
index 5a73145..f020ff0 100644
--- a/loader/ne/convert.c
+++ b/loader/ne/convert.c
@@ -46,7 +46,7 @@
     case 0xffff:  ((WORD *)p)++; *((BYTE *)dialog16)++ = 0xff; 
                   *((WORD *)dialog16)++ = *((WORD *)p)++; break;
     default:      lstrcpyWtoA( (LPSTR)dialog16, (LPWSTR)p );
-                  ((LPSTR)dialog16) += lstrlenA( (LPSTR)dialog16 ) + 1;
+                  ((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
                   ((LPWSTR)p) += lstrlenW( (LPWSTR)p ) + 1;
                   break;
     }
@@ -58,14 +58,14 @@
     case 0xffff:  ((WORD *)p)++; *((BYTE *)dialog16)++ = 0xff; 
                   *((WORD *)dialog16)++ = *((WORD *)p)++; break;
     default:      lstrcpyWtoA( (LPSTR)dialog16, (LPWSTR)p );
-                  ((LPSTR)dialog16) += lstrlenA( (LPSTR)dialog16 ) + 1;
+                  ((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
                   ((LPWSTR)p) += lstrlenW( (LPWSTR)p ) + 1;
                   break;
     }
 
     /* Transfer window caption */
     lstrcpyWtoA( (LPSTR)dialog16, (LPWSTR)p );
-    ((LPSTR)dialog16) += lstrlenA( (LPSTR)dialog16 ) + 1;
+    ((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
     ((LPWSTR)p) += lstrlenW( (LPWSTR)p ) + 1;
 
     /* Transfer font info */
@@ -78,7 +78,7 @@
             *((WORD *)dialog16)++ = *((WORD *)p)++; /* italic */
         }
         lstrcpyWtoA( (LPSTR)dialog16, (LPWSTR)p );  /* faceName */
-        ((LPSTR)dialog16) += lstrlenA( (LPSTR)dialog16 ) + 1;
+        ((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
         ((LPWSTR)p) += lstrlenW( (LPWSTR)p ) + 1;
     }
 
@@ -120,7 +120,7 @@
         case 0xffff:  ((WORD *)p)++; 
                       *((BYTE *)dialog16)++ = (BYTE)*((WORD *)p)++; break;
         default:      lstrcpyWtoA( (LPSTR)dialog16, (LPWSTR)p );
-                      ((LPSTR)dialog16) += lstrlenA( (LPSTR)dialog16 ) + 1;
+                      ((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
                       ((LPWSTR)p) += lstrlenW( (LPWSTR)p ) + 1;
                       break;
         }
@@ -132,7 +132,7 @@
         case 0xffff:  ((WORD *)p)++; *((BYTE *)dialog16)++ = 0xff; 
                       *((WORD *)dialog16)++ = *((WORD *)p)++; break;
         default:      lstrcpyWtoA( (LPSTR)dialog16, (LPWSTR)p );
-                      ((LPSTR)dialog16) += lstrlenA( (LPSTR)dialog16 ) + 1;
+                      ((LPSTR)dialog16) += strlen( (LPSTR)dialog16 ) + 1;
                       ((LPWSTR)p) += lstrlenW( (LPWSTR)p ) + 1;
                       break;
         }
@@ -295,7 +295,7 @@
                 level++;
        
             lstrcpyWtoA( (LPSTR)menu16, (LPWSTR)p );
-            ((LPSTR)menu16) += lstrlenA( (LPSTR)menu16 ) + 1;
+            ((LPSTR)menu16) += strlen( (LPSTR)menu16 ) + 1;
             ((LPWSTR)p) += lstrlenW( (LPWSTR)p ) + 1;
 
             if ( flags & MF_END )
@@ -309,7 +309,7 @@
             flags = *((BYTE *)menu16)++ = (BYTE)*((WORD *)p)++;  
        
             lstrcpyWtoA( (LPSTR)menu16, (LPWSTR)p );
-            ((LPSTR)menu16) += lstrlenA( (LPSTR)menu16 ) + 1;
+            ((LPSTR)menu16) += strlen( (LPSTR)menu16 ) + 1;
             ((LPWSTR)p) += lstrlenW( (LPWSTR)p ) + 1;
 
             /* align on DWORD boundary (32-bit only) */
diff --git a/loader/ne/module.c b/loader/ne/module.c
index a529334..93a7fce 100644
--- a/loader/ne/module.c
+++ b/loader/ne/module.c
@@ -1504,7 +1504,7 @@
 	    loadedfn--;
 	}
 	/* case insensitive compare ... */
-	if (!lstrcmpiA(loadedfn, s))
+	if (!strcasecmp(loadedfn, s))
 	    return hModule;
     }
 
@@ -1579,7 +1579,7 @@
 	    loadedfn--;
 	}
 	/* case insensitive compare ... */
-	if (!lstrcmpiA(loadedfn, s))
+	if (!strcasecmp(loadedfn, s))
 	    return hModule;
     }
 
diff --git a/loader/ne/resource.c b/loader/ne/resource.c
index d3be919..eb447b4 100644
--- a/loader/ne/resource.c
+++ b/loader/ne/resource.c
@@ -66,8 +66,7 @@
                 if (p[1] & 0x8000)
                 {
                     if (!HIWORD(typeId)) continue;
-                    if (lstrcmpiA( typeId,
-                                     (char *)(p + 3) )) continue;
+                    if (strcasecmp( typeId, (char *)(p + 3) )) continue;
                 }
                 else if (HIWORD(typeId) || (((DWORD)typeId & ~0x8000)!= p[1]))
                   continue;
@@ -77,8 +76,7 @@
                 if (p[2] & 0x8000)
                 {
                     if (!HIWORD(resId)) continue;
-                    if (lstrcmpiA( resId,
-                               (char*)(p+3)+strlen((char*)(p+3))+1 )) continue;
+                    if (strcasecmp( resId, (char*)(p+3)+strlen((char*)(p+3))+1 )) continue;
                     
                 }
                 else if (HIWORD(resId) || (((DWORD)resId & ~0x8000) != p[2]))
diff --git a/misc/registry.c b/misc/registry.c
index a7eb4bd..4462ef8 100644
--- a/misc/registry.c
+++ b/misc/registry.c
@@ -1220,7 +1220,7 @@
 			/* all toplevel entries AND the entries in the 
 			 * toplevel subdirectory belong to \SOFTWARE\Classes
 			 */
-			if (!level && !lstrcmpA(tail,".classes")) {
+			if (!level && !strcmp(tail,".classes")) {
 				__w31_dumptree(dir->child_idx,txt,tab,head,hkey,lastmodified,level+1);
 				idx=dir->sibling_idx;
 				continue;
diff --git a/objects/enhmetafile.c b/objects/enhmetafile.c
index e8dbaf8..6828837 100644
--- a/objects/enhmetafile.c
+++ b/objects/enhmetafile.c
@@ -209,11 +209,11 @@
      first = lstrlenW( (WCHAR *) ((char *) emh + emh->offDescription));
  
      lstrcpynWtoA(buf, (WCHAR *) ((char *) emh + emh->offDescription), size);
-     first_A = lstrlenA( buf );
+     first_A = strlen( buf );
      buf += first_A + 1;
      lstrcpynWtoA(buf, (WCHAR *) ((char *) emh + emh->offDescription+2*(first+1)),
  		 size - first_A - 1); /* i18n ready */
-     first_A += lstrlenA(buf) + 1;
+     first_A += strlen(buf) + 1;
  
      EMF_ReleaseEnhMetaHeader(hmf);
      return min(size, first_A);
diff --git a/ole/ole2nls.c b/ole/ole2nls.c
index 8463798..6d39f20 100644
--- a/ole/ole2nls.c
+++ b/ole/ole2nls.c
@@ -1182,7 +1182,7 @@
 	}
 
 	if (cchSrc==-1)
-	  cchSrc=lstrlenA(src)+1;
+	  cchSrc=strlen(src)+1;
 	  
 	switch (dwInfoType) {
 	case CT_CTYPE1:
@@ -1778,7 +1778,7 @@
     return 0;
   }
   if (srclen == -1) 
-    srclen = lstrlenA(srcstr) + 1 ;    /* (include final '\0') */
+    srclen = strlen(srcstr) + 1 ;    /* (include final '\0') */
 
 #define LCMAPSTRINGA_SUPPORTED_FLAGS (LCMAP_UPPERCASE     | \
                                         LCMAP_LOWERCASE     | \
@@ -2359,8 +2359,8 @@
   if(fdwStyle & NORM_IGNORESYMBOLS)
     FIXME("IGNORESYMBOLS not supported\n");
 
-  if (l1 == -1) l1 = lstrlenA(s1);
-  if (l2 == -1) l2 = lstrlenA(s2);
+  if (l1 == -1) l1 = strlen(s1);
+  if (l2 == -1) l2 = strlen(s2);
   	
   mapstring_flags = LCMAP_SORTKEY | fdwStyle ;
   len1 = OLE2NLS_EstimateMappingLength(lcid, mapstring_flags, s1, l1);
diff --git a/relay32/relay386.c b/relay32/relay386.c
index 09a22f1..84b433b 100644
--- a/relay32/relay386.c
+++ b/relay32/relay386.c
@@ -52,7 +52,7 @@
       itemlen = strlen(*listitem);
       if((itemlen == len && !lstrncmpiA(*listitem, func, len)) ||
          (itemlen == len2 && !lstrncmpiA(*listitem, func, len2)) ||
-         !lstrcmpiA(*listitem, term)) {
+         !strcasecmp(*listitem, term)) {
         show = !show;
        break;
       }
@@ -115,7 +115,6 @@
 
     for (wm = PROCESS_Current()->modref_list; wm; wm = wm->next)
     {
-        if (wm->type != MODULE32_PE) continue;
         if (!(wm->flags & WINE_MODREF_INTERNAL)) continue;
         base = (char *)wm->module;
         dir = &PE_HEADER(base)->OptionalHeader.DataDirectory[IMAGE_FILE_EXPORT_DIRECTORY];
diff --git a/win32/device.c b/win32/device.c
index d087de7..0ce2673 100644
--- a/win32/device.c
+++ b/win32/device.c
@@ -321,7 +321,7 @@
     const struct VxDInfo *info;
 
     for (info = VxDList; info->name; info++)
-        if (!lstrcmpiA( info->name, filename ))
+        if (!strncasecmp( info->name, filename, strlen(info->name) ))
             return FILE_CreateDevice( info->id | 0x10000, access, sa );
 
     FIXME( "Unknown VxD %s\n", filename);
diff --git a/win32/init.c b/win32/init.c
index eb03506..b58677c 100644
--- a/win32/init.c
+++ b/win32/init.c
@@ -91,7 +91,7 @@
     {
       ret = (-1!=gethostname(name,*size));
       if (ret)
-	*size = lstrlenA(name);
+	*size = strlen(name);
     }
     __EXCEPT(page_fault)
     {
diff --git a/windows/driver.c b/windows/driver.c
index 859b6f5..4fbb356 100644
--- a/windows/driver.c
+++ b/windows/driver.c
@@ -82,7 +82,7 @@
 	HDRVR16	hDrv;
 	LPSTR	ptr;
 
-	for (ptr = str; lstrlenA(ptr) != 0; ptr += lstrlenA(ptr) + 1) {
+	for (ptr = str; *ptr; ptr += strlen(ptr) + 1) {
 	    TRACE("str='%s'\n", ptr);
 	    hDrv = OpenDriver16(ptr, "drivers", 0L);
 	    TRACE("hDrv=%04x\n", hDrv);
@@ -732,7 +732,7 @@
     
     TRACE("('%s', %08lX, %d);\n", lpFileName, lParam, bCallFrom32);
     
-    if (lstrlenA(lpFileName) < 1) 
+    if (strlen(lpFileName) < 1) 
 	return 0;
     
     lpSFN = strrchr(lpFileName, '\\');
@@ -766,7 +766,7 @@
     
     TRACE("('%s', %08lX, %d);\n", lpFileName, lParam, bCallFrom32);
     
-    if (lstrlenA(lpFileName) < 1) 
+    if (strlen(lpFileName) < 1) 
 	return 0;
     
     lpSFN = strrchr(lpFileName, '\\');
diff --git a/windows/painting.c b/windows/painting.c
index 7bc2e10..7d7061a 100644
--- a/windows/painting.c
+++ b/windows/painting.c
@@ -1485,9 +1485,9 @@
         if(unicode)
             len = lstrlenW((LPWSTR)lp);
         else if(_32bit)
-            len = lstrlenA((LPSTR)lp);
+            len = strlen((LPSTR)lp);
         else
-            len = lstrlenA((LPSTR)PTR_SEG_TO_LIN(lp));
+            len = strlen((LPSTR)PTR_SEG_TO_LIN(lp));
     }
 
     /* Find out what size the image has if not given by caller */
diff --git a/windows/win.c b/windows/win.c
index 99acd4b..7d5b896 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -10,6 +10,7 @@
 #include "wingdi.h"
 #include "wine/winbase16.h"
 #include "wine/winuser16.h"
+#include "wine/unicode.h"
 #include "options.h"
 #include "class.h"
 #include "win.h"
@@ -1556,7 +1557,7 @@
             retvalue = pWnd->hwndSelf;
             goto end;
         }
-        if (pWnd->text && !lstrcmpW( pWnd->text, title ))
+        if (pWnd->text && !strcmpW( pWnd->text, title ))
         {
             retvalue = pWnd->hwndSelf;
             goto end;