diff --git a/src/lib-sieve-tool/sieve-tool.c b/src/lib-sieve-tool/sieve-tool.c
index 746c1a3f45f9c94ebcda7adcca160ab367bde62a..9c7a19cae719ca24a38c225eade244c2a3f39fb1 100644
--- a/src/lib-sieve-tool/sieve-tool.c
+++ b/src/lib-sieve-tool/sieve-tool.c
@@ -232,6 +232,9 @@ struct sieve_instance *sieve_tool_init_finish
 		sieve_tool_get_user_data(&username, &homedir);
 		
 		username = tool->username = i_strdup(username);
+
+		if ( tool->homedir != NULL )
+			i_free(tool->homedir);
 		tool->homedir = i_strdup(homedir);
 	} else
 		storage_service_flags |=