diff --git a/src/preparser/art.c b/src/preparser/art.c
index b7f0d48411bacea73ee91941f65d1d7f6294e533..9fa9e66ba0082d148ae9e4c41d12936e9555fce1 100644
--- a/src/preparser/art.c
+++ b/src/preparser/art.c
@@ -37,20 +37,17 @@
 
 #include "art.h"
 
-static void ArtCacheCreateDir( const char *psz_dir )
+static void ArtCacheCreateDir( char *psz_dir )
 {
-    char newdir[strlen( psz_dir ) + 1];
-    strcpy( newdir, psz_dir );
-    char * psz_newdir = newdir;
-    char * psz = psz_newdir;
+    char * psz = psz_dir;
 
     while( *psz )
     {
         while( *psz && *psz != DIR_SEP_CHAR) psz++;
         if( !*psz ) break;
         *psz = 0;
-        if( !EMPTY_STR( psz_newdir ) )
-            vlc_mkdir( psz_newdir, 0700 );
+        if( !EMPTY_STR( psz_dir ) )
+            vlc_mkdir( psz_dir, 0700 );
         *psz = DIR_SEP_CHAR;
         psz++;
     }