diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index 6938cf1688d2fcdd52793b38c9bd32a18a0c4555..abc8c0c2777887644e661319afaf6fa62da27a72 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -109,6 +109,10 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
             }
           );
           break;
+
+        case "invalidid":
+          this.toList();
+          break;
       }
     }
   }
@@ -125,6 +129,10 @@ export class AppComponent implements OnInit, OnDestroy, Observer {
 
   private newCalc() {
     this.closeNav();
+    this.toList();
+  }
+
+  private toList() {
     this.router.navigate(['/list']);
   }
 
diff --git a/src/app/calculators/generic/calculator.component.html b/src/app/calculators/generic/calculator.component.html
index c04760e666baf1f3527fab84f66cfe1881c9d887..0c875daebf755d3f251c0e2227d4da51561c40bd 100644
--- a/src/app/calculators/generic/calculator.component.html
+++ b/src/app/calculators/generic/calculator.component.html
@@ -1,4 +1,4 @@
-<div class="row">
+<div *ngIf="hasData()" class="row">
     <div class="col">
         <h1>{{uitextTitre}}</h1>
     </div>
@@ -6,19 +6,19 @@
 <field-set *ngFor="let fs of fieldSets" [style.display]="getFieldsetStyleDisplay(fs.id)" [fieldSet]=fs (onRadio)=onRadioClick($event)
     (onSelectChange)=onSelectChanged($event)></field-set>
 
-<div class="row ">
+<div *ngIf="hasData()" class="row">
     <div class="col text-center">
         <p></p>
     </div>
 </div>
 
-<div class="row ">
+<div *ngIf="hasData()" class="row">
     <div class="col text-center">
         <button type="button" class="button_compute" name="Calculer" (click)="doCompute()">{{uitextCalculer}}</button>
     </div>
 </div>
 
-<div class="row ">
+<div *ngIf="hasData()" class="row">
     <div class="col text-center">
         <p></p>
     </div>
diff --git a/src/app/calculators/generic/calculator.component.ts b/src/app/calculators/generic/calculator.component.ts
index 228c1fe5a25593da9a08410eb96690fa2dc0a64c..5aa78c18da3dcfa8b5b56025481e12fc4fb646e6 100644
--- a/src/app/calculators/generic/calculator.component.ts
+++ b/src/app/calculators/generic/calculator.component.ts
@@ -47,6 +47,10 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, OnDestroy, O
         return this._formulaire.getFieldSets();
     }
 
+    private hasData() {
+        return this._formulaire != undefined;
+    }
+
     private get uitextTitre() {
         switch (this._formulaire.calculatorType) {
             case CalculatorType.ConduiteDistributrice:
@@ -102,7 +106,8 @@ export class GenericCalculatorComponent implements OnInit, DoCheck, OnDestroy, O
 
             this._formulaire = this.formulaireService.getFormulaireFromId(uid);
             this.resultsComponent.formulaire = this._formulaire;
-            this._formulaire.updateNodeType();
+            if (this._formulaire != undefined)
+                this._formulaire.updateNodeType();
         });
     }
 
diff --git a/src/app/components/calculator-results/calculator-results.component.ts b/src/app/components/calculator-results/calculator-results.component.ts
index 9cb97804ffeacde0a54e40c8231180b70ab2eab0..45ae5825ccc6512c83224e3cdb84b4058c77e6b6 100644
--- a/src/app/components/calculator-results/calculator-results.component.ts
+++ b/src/app/components/calculator-results/calculator-results.component.ts
@@ -32,9 +32,16 @@ export class CalculatorResultsComponent {
 
     public set formulaire(f: FormulaireDefinition) {
         this._formulaire = f;
-        this.fixedVarResultsComponent.results = f.fixVarResults;
-        this.sectionResultsComponent.results = f.sectionResults;
-        this.remousResultsComponent.results = f.remousResults;
+        if (this._formulaire == undefined) {
+            this.fixedVarResultsComponent.results = undefined;
+            this.sectionResultsComponent.results = undefined;
+            this.remousResultsComponent.results = undefined;
+        }
+        else {
+            this.fixedVarResultsComponent.results = f.fixVarResults;
+            this.sectionResultsComponent.results = f.sectionResults;
+            this.remousResultsComponent.results = f.remousResults;
+        }
     }
 
     public updateView() {
diff --git a/src/app/components/remous-results/remous-results.component.html b/src/app/components/remous-results/remous-results.component.html
index 6dd37902114198d33536fb678e0cc4a1a394692b..4c1e9250999f3e13aa6661a6b006a5690093712d 100644
--- a/src/app/components/remous-results/remous-results.component.html
+++ b/src/app/components/remous-results/remous-results.component.html
@@ -5,7 +5,7 @@
 </div>
 <div class="row">
     <div class="col-10 mx-auto">
-        <chart *ngIf="_results.extraGraph" [type]="graph2_type" [data]="graph2_data" [options]="graph2_options"></chart>
+        <chart *ngIf="extraGraph" [type]="graph2_type" [data]="graph2_data" [options]="graph2_options"></chart>
     </div>
 </div>
 
@@ -31,12 +31,12 @@
                 <tr>
                     <th>{{uitextAbscisse}}</th>
                     <th>{{uitextTirant}}</th>
-                    <th>{{_results.extraParamLabel}}</th>
+                    <th>{{extraParamLabel}}</th>
                     <th>{{uitextTirant}}</th>
-                    <th>{{_results.extraParamLabel}}</th>
+                    <th>{{extraParamLabel}}</th>
                 </tr>
             </thead>
-            <tr *ngFor="let r of _results.series; let i=index" [class]="getResultClass(i)">
+            <tr *ngFor="let r of series; let i=index" [class]="getResultClass(i)">
                 <td>{{r.abs}}</td>
                 <td>{{r.flu}}</td>
                 <td>{{r.extraFlu}}</td>
diff --git a/src/app/components/remous-results/remous-results.component.ts b/src/app/components/remous-results/remous-results.component.ts
index 49fd4c59e29847c8b864e47860ab917b1b07d908..c0c574ca706a7ebc453fcda664de34115fe1c23b 100644
--- a/src/app/components/remous-results/remous-results.component.ts
+++ b/src/app/components/remous-results/remous-results.component.ts
@@ -88,6 +88,18 @@ export class RemousResultsComponent {
         return this.intlService.localizeText("INFO_REMOUSRESULTS_TIRANTCRITIQUE")
     }
 
+    private get extraGraph(): boolean {
+        return this._results == undefined ? false : this._results.extraGraph;
+    }
+
+    private get series(): Object[] {
+        return this._results == undefined ? [] : this._results.series;
+    }
+
+    private get extraParamLabel(): string {
+        return this._results == undefined ? undefined : this._results.extraParamLabel;
+    }
+
     public set results(r: RemousResults) {
         this._results = r;
         this.updateView();
diff --git a/src/app/services/formulaire/formulaire.service.ts b/src/app/services/formulaire/formulaire.service.ts
index 270d1c0e84bbe33d818c52ed3485daa6b221872e..d83991a8e3d024d6717488ec290d6a440b83da44 100644
--- a/src/app/services/formulaire/formulaire.service.ts
+++ b/src/app/services/formulaire/formulaire.service.ts
@@ -116,7 +116,12 @@ export class FormulaireService extends Observable {
             if (f.uid == uid)
                 return f;
 
-        throw "FormulaireService.getFormulaire() : unkown form id " + uid;
+        this.notifyObservers({
+            "action": "invalidid",
+            "formid": uid
+        });
+
+        return undefined;
     }
 
     public getInputField(formId: number, elemId: string): InputField {