diff --git a/app/comp/moy_ue.py b/app/comp/moy_ue.py
index f1dba24d8fae12a6fcf65895d674b5c8f163d0c2..5f432387ce9821b0196cb76f22413416b96a6e2b 100644
--- a/app/comp/moy_ue.py
+++ b/app/comp/moy_ue.py
@@ -496,7 +496,8 @@ def compute_malus(
     """
     ues_idx = [ue.id for ue in ues]
     malus = pd.DataFrame(index=modimpl_inscr_df.index, columns=ues_idx, dtype=float)
-
+    if len(sem_modimpl_moys.flat) == 0:  # vide
+        return malus
     if len(sem_modimpl_moys.shape) > 2:
         # BUT: ne retient que la 1er composante du malus qui est scalaire
         # au sens ou chaque note de malus n'affecte que la moyenne de l'UE
diff --git a/sco_version.py b/sco_version.py
index 6cb2218c24cd4621683daf2e218b2ea95d57108b..b58e1e77deba7800bb7601c7511a4eec1d44c25c 100644
--- a/sco_version.py
+++ b/sco_version.py
@@ -1,7 +1,7 @@
 # -*- mode: python -*-
 # -*- coding: utf-8 -*-
 
-SCOVERSION = "9.3.11"
+SCOVERSION = "9.3.12"
 
 SCONAME = "ScoDoc"