diff --git a/src/smblib/smbtxt.c b/src/smblib/smbtxt.c
index 27804b4c41fdffaa03eea7424545cc832e6794b8..60794b91977ab98dd2dc710f7efc52d48e07b47e 100644
--- a/src/smblib/smbtxt.c
+++ b/src/smblib/smbtxt.c
@@ -367,7 +367,8 @@ void SMBCALL smb_parse_content_type(const char* content_type, char** subtype, ch
 				*tp = 0;
 			}
 		}
-		if(charset != NULL && ((p = strcasestr(p, " charset=")) != NULL || (p = strcasestr(p, ";charset=")) != NULL)) {
+		char* parms = p;
+		if(charset != NULL && ((p = strcasestr(parms, " charset=")) != NULL || (p = strcasestr(parms, ";charset=")) != NULL)) {
 			BOOL quoted = FALSE;
 			p += 9;
 			if(*p == '"') {