diff --git a/xvaga/xvtextra.cpp b/xvaga/xvtextra.cpp
index b7c584645..2fe32b788 100755
--- a/xvaga/xvtextra.cpp
+++ b/xvaga/xvtextra.cpp
@@ -776,11 +776,9 @@ const char* xvt_fsys_get_campo_ini()
     char exedir[_MAX_PATH], path[_MAX_PATH];
     // Nelle installazioni sfigate con programmi in rete cerca di stabilire il percorso locale di Campo.ini
     DIRECTORY dir;
-		char username[32];
 
     xvt_fsys_get_default_dir(&dir);
     xvt_fsys_convert_dir_to_str(&dir, exedir, sizeof(exedir));
-    xvt_sys_get_user_name(username, sizeof(username));
 #ifdef WIN32
     if (xvt_fsys_is_network_drive(exedir))
     {
@@ -797,14 +795,16 @@ const char* xvt_fsys_get_campo_ini()
         }
       }
     }
-    if (xvt_sys_get_os_version() < XVT_WS_WIN_NT)
-    	*username = '\0';
-#endif
+		if (!bFound)
+  	  xvt_fsys_build_pathname(path, NULL, exedir, "campo", "ini", NULL);
+#else
 		if (!bFound)
 		{
+			char username[32];
    		char ininame[_MAX_FNAME];
 
-			if (xvt_str_compare_ignoring_case(username, "ADMIN") == 0)
+	    xvt_sys_get_user_name(username, sizeof(username));
+			if (xvt_str_compare_ignoring_case(username, "root") == 0)
 				*username = '\0';
 
 	    sprintf(ininame, "campo%s", username);
@@ -816,7 +816,8 @@ const char* xvt_fsys_get_campo_ini()
    	  	if (xvt_fsys_file_exists(pathstd))
 					wxCopyFile(pathstd, path);
 			}
-		}	
+		}
+#endif
  		if (!xvt_fsys_file_exists(path))
 		{
    		char msg[256];