diff --git a/Manifest.toml b/Manifest.toml
index b9b49267e0067bbfb7237a029a41692916656455..fc611a097c5931975ebd2babd97d8f6aa292f13d 100644
--- a/Manifest.toml
+++ b/Manifest.toml
@@ -421,9 +421,9 @@ version = "1.2.1"
 
 [[deps.ImageMagick_jll]]
 deps = ["Artifacts", "Ghostscript_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pkg", "Zlib_jll", "libpng_jll"]
-git-tree-sha1 = "f025b79883f361fa1bd80ad132773161d231fd9f"
+git-tree-sha1 = "124626988534986113cfd876e3093e4a03890f58"
 uuid = "c73af94c-d91f-53ed-93a7-00f77d67a9d7"
-version = "6.9.12+2"
+version = "6.9.12+3"
 
 [[deps.Imath_jll]]
 deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
@@ -863,9 +863,9 @@ uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688"
 version = "0.1.1"
 
 [[deps.PlanarLarvae]]
-deps = ["DelimitedFiles", "JSON3", "MAT", "Meshes", "OrderedCollections", "SHA", "StaticArrays", "StructTypes"]
-git-tree-sha1 = "d231f3b1d82d26c4d4ce6077db95ddeb2e8236f0"
-repo-rev = "main"
+deps = ["DelimitedFiles", "HDF5", "JSON3", "MAT", "Meshes", "OrderedCollections", "SHA", "StaticArrays", "Statistics", "StatsBase", "StructTypes"]
+git-tree-sha1 = "34405afb18a5c5445c83e17980b53b9eb2fa4d09"
+repo-rev = "dev"
 repo-url = "https://gitlab.pasteur.fr/nyx/planarlarvae.jl"
 uuid = "c2615984-ef14-4d40-b148-916c85b43307"
 version = "0.5.0"
diff --git a/src/backends.jl b/src/backends.jl
index 1a114d578a8603eafa8aa884a069ac0b1fa1e49e..9d244f812594a85a43637b854627a6f9215df53e 100644
--- a/src/backends.jl
+++ b/src/backends.jl
@@ -112,7 +112,11 @@ function pop(model::Backends, dir::String)
     backend_dir = joinpath(model.location, model.active_backend[])
     proc_data_dir = joinpath(backend_dir, "data/processed", model.model_instance[])
     isdir(proc_data_dir) || throw("no processed data directory found")
-    src_file = normpath(joinpath(proc_data_dir, "predicted.labels"))
+    src_file = normpath(joinpath(proc_data_dir, "predicted.label"))
+    if !isfile(src_file)
+        # backward compatibility: look for predicted.labels
+        src_file = src_file * "s"
+    end
     isfile(src_file) || throw("no label files found")
     dest_file = normpath(joinpath(dir, basename(src_file)))
     if dest_file != src_file
diff --git a/src/files.jl b/src/files.jl
index 4ba72f1181e918e28fbadffcd6040403f74c561a..6e02548ff3f0a9127c8b87385b6814336ec40881 100644
--- a/src/files.jl
+++ b/src/files.jl
@@ -329,10 +329,10 @@ function getoutputfile(controller)
     try
         outputfile = hub[:outputfile]
     catch
-        hub[:outputfile] = outputfile = Observable{Union{Nothing, String}}("{yyyymmdd_HHMMSS}.labels")
+        hub[:outputfile] = outputfile = Observable{Union{Nothing, String}}("{yyyymmdd_HHMMSS}.label")
         on(outputfile) do file
             if isnothing(file)
-                outputfile.val = file = "{yyyymmdd_HHMMSS}.labels"
+                outputfile.val = file = "{yyyymmdd_HHMMSS}.label"
             else
                 savetofile(hub, file)
             end