diff --git a/src/lib-sieve/sieve-script.c b/src/lib-sieve/sieve-script.c
index 40a8bf10831866e354eb4a84b81654afc6cf0a10..02f95b2097be9fd0846f7d0ab913cfd8b8aa4d85 100644
--- a/src/lib-sieve/sieve-script.c
+++ b/src/lib-sieve/sieve-script.c
@@ -78,7 +78,7 @@ struct sieve_script *sieve_script_init
 			script->ehandler = ehandler;
 			sieve_error_handler_ref(ehandler);
 	
-			memcpy((void *) &script->st, (void *) &st, sizeof(st));
+			script->st = st;
 			script->path = p_strdup(pool, path);
 			script->filename = p_strdup(pool, filename);
 			script->dirpath = p_strdup(pool, dirpath);