diff --git a/Elwig/ViewModels/DeliveryAdminViewModel.cs b/Elwig/ViewModels/DeliveryAdminViewModel.cs
index 7bb135a..ad8ea42 100644
--- a/Elwig/ViewModels/DeliveryAdminViewModel.cs
+++ b/Elwig/ViewModels/DeliveryAdminViewModel.cs
@@ -116,7 +116,11 @@ namespace Elwig.ViewModels {
         [ObservableProperty]
         private bool _isManualWeighing;
         [ObservableProperty]
-        private bool _isNetWeight;
+        private bool? _isNetWeightValue = false;
+        public bool IsNetWeight {
+            get => IsNetWeightValue ?? false;
+            set => IsNetWeightValue = value;
+        }
 
         [ObservableProperty]
         private WineOrigin? _wineOrigin;
diff --git a/Elwig/Windows/AdministrationWindow.cs b/Elwig/Windows/AdministrationWindow.cs
index 9532f50..5fe2dff 100644
--- a/Elwig/Windows/AdministrationWindow.cs
+++ b/Elwig/Windows/AdministrationWindow.cs
@@ -109,7 +109,7 @@ namespace Elwig.Windows {
 
         private void OnClosing(object? sender, CancelEventArgs evt) {
             if ((IsCreating || IsEditing) && HasChanged) {
-                var r = System.Windows.MessageBox.Show("Soll das Fenster wirklich geschlossen werden?", "Schließen bestätigen",
+                var r = MessageBox.Show("Soll das Fenster wirklich geschlossen werden?", "Schließen bestätigen",
                     MessageBoxButton.YesNo, MessageBoxImage.Warning, MessageBoxResult.No);
                 if (r != MessageBoxResult.Yes) {
                     evt.Cancel = true;
@@ -166,7 +166,7 @@ namespace Elwig.Windows {
                     ControlUtils.SetInputInvalid(input);
                 } else if (input is ListBox lb && lb.SelectedItem == null && lb.ItemsSource != null && lb.ItemsSource.Cast<object>().Any()) {
                     ControlUtils.SetInputInvalid(input);
-                } else if (input is CheckBox ckb && ckb.IsChecked != true) {
+                } else if (input is CheckBox ckb && ((ckb.IsThreeState && ckb.IsChecked == null) || (!ckb.IsThreeState && ckb.IsChecked != true))) {
                     ControlUtils.SetInputInvalid(input);
                     Valid[input] = false;
                 } else if (input is RadioButton rb && rb.IsChecked != true) {
@@ -402,20 +402,24 @@ namespace Elwig.Windows {
 
         protected bool InputLostFocus(TextBox input, ValidationResult res, string? msg = null) {
             if (DoShowWarningWindows && !res.IsValid && !IsClosing && (IsEditing || IsCreating))
-                System.Windows.MessageBox.Show(res.ErrorContent.ToString(), msg ?? res.ErrorContent.ToString(), MessageBoxButton.OK, MessageBoxImage.Warning);
+                MessageBox.Show(res.ErrorContent.ToString(), msg ?? res.ErrorContent.ToString(), MessageBoxButton.OK, MessageBoxImage.Warning);
             return res.IsValid;
         }
 
         protected void CheckBox_Changed(object sender, RoutedEventArgs evt) {
             var input = (CheckBox)sender;
-            if (SenderIsRequired(input) && input.IsChecked != true) {
+            if (SenderIsRequired(input) && ((input.IsThreeState && input.IsChecked == null) || (!input.IsThreeState && input.IsChecked != true))) {
+                ValidateInput(input, false);
                 ControlUtils.SetInputInvalid(input);
-            } else if (InputHasChanged(input)) {
-                ControlUtils.SetInputChanged(input);
-            } else if (InputIsNotDefault(input)) {
-                ControlUtils.SetInputNotDefault(input);
             } else {
-                ControlUtils.ClearInputState(input);
+                ValidateInput(input, true);
+                if (InputHasChanged(input)) {
+                    ControlUtils.SetInputChanged(input);
+                } else if (InputIsNotDefault(input)) {
+                    ControlUtils.SetInputNotDefault(input);
+                } else {
+                    ControlUtils.ClearInputState(input);
+                }
             }
             UpdateButtons();
         }
@@ -423,13 +427,17 @@ namespace Elwig.Windows {
         protected void RadioButton_Changed(object sender, RoutedEventArgs evt) {
             var input = (RadioButton)sender;
             if (SenderIsRequired(input) && input.IsChecked != true) {
+                ValidateInput(input, false);
                 ControlUtils.SetInputInvalid(input);
-            } else if (InputHasChanged(input)) {
-                ControlUtils.SetInputChanged(input);
-            } else if (InputIsNotDefault(input)) {
-                ControlUtils.SetInputNotDefault(input);
             } else {
-                ControlUtils.ClearInputState(input);
+                ValidateInput(input, true);
+                if (InputHasChanged(input)) {
+                    ControlUtils.SetInputChanged(input);
+                } else if (InputIsNotDefault(input)) {
+                    ControlUtils.SetInputNotDefault(input);
+                } else {
+                    ControlUtils.ClearInputState(input);
+                }
             }
             UpdateButtons();
         }
diff --git a/Elwig/Windows/DeliveryAdminWindow.xaml b/Elwig/Windows/DeliveryAdminWindow.xaml
index 8b48c41..69df874 100644
--- a/Elwig/Windows/DeliveryAdminWindow.xaml
+++ b/Elwig/Windows/DeliveryAdminWindow.xaml
@@ -468,10 +468,10 @@
                               VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10,45,10,10" Grid.Column="0" Grid.ColumnSpan="2"
                               Checked="CheckBox_Changed" Unchecked="CheckBox_Changed"/>
 
-                    <CheckBox x:Name="GerebeltGewogenInput" IsChecked="{Binding IsNetWeight, Mode=TwoWay}"
-                              Content="Gerebelt gewogen"
+                    <CheckBox x:Name="GerebeltGewogenInput" IsChecked="{Binding IsNetWeightValue, Mode=TwoWay}"
+                              Content="Gerebelt gewogen" IsThreeState="True"
                               VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10,75,10,10" Grid.Column="0" Grid.ColumnSpan="2"
-                              Checked="GerebeltGewogenInput_Changed" Unchecked="GerebeltGewogenInput_Changed"/>
+                              Checked="GerebeltGewogenInput_Changed" Unchecked="GerebeltGewogenInput_Changed" Indeterminate="GerebeltGewogenInput_Changed"/>
 
                     <Button x:Name="WeighingAButton" Content="Wiegen A" Width="120"
                             Click="WeighingButton_Click"
diff --git a/Elwig/Windows/DeliveryAdminWindow.xaml.cs b/Elwig/Windows/DeliveryAdminWindow.xaml.cs
index 5347f3a..d6a220f 100644
--- a/Elwig/Windows/DeliveryAdminWindow.xaml.cs
+++ b/Elwig/Windows/DeliveryAdminWindow.xaml.cs
@@ -50,7 +50,7 @@ namespace Elwig.Windows {
                 SortIdInput, WineVarietyInput,
                 GradationOeInput, GradationKmwInput, WineQualityLevelInput,
                 WineOriginInput, WineKgInput,
-                WeightInput
+                WeightInput, GerebeltGewogenInput,
             ];
             ExemptInputs = [
                 SearchInput, SeasonInput, TodayOnlyInput, AllSeasonsInput,
@@ -257,6 +257,7 @@ namespace Elwig.Windows {
                 SetDefaultValue(GerebeltGewogenInput, true);
             } else {
                 GerebeltGewogenInput.IsEnabled = true;
+                GerebeltGewogenInput.IsChecked = null;
                 UnsetDefaultValue(GerebeltGewogenInput);
             }
 
@@ -1380,6 +1381,9 @@ namespace Elwig.Windows {
             if (!App.Client.HasNetWeighing(ViewModel.Branch)) {
                 HandPickedInput.IsChecked = !GerebeltGewogenInput.IsChecked;
             }
+            if (!ViewModel.IsReceipt || App.Client.HasNetWeighing(ViewModel.Branch)) {
+                GerebeltGewogenInput.IsChecked ??= false;
+            }
             CheckBox_Changed(sender, evt);
         }
 
diff --git a/Tests/E2ETests/DeliveryAdminWindowReceiptTest.cs b/Tests/E2ETests/DeliveryAdminWindowReceiptTest.cs
index ce1d246..0f62bba 100644
--- a/Tests/E2ETests/DeliveryAdminWindowReceiptTest.cs
+++ b/Tests/E2ETests/DeliveryAdminWindowReceiptTest.cs
@@ -40,6 +40,10 @@ namespace Tests.E2ETests {
         }
 
         private void FinishDeliveryNote(WindowsDriver<WindowsElement> window) {
+            var gerebeltGewogen = window.FindElement(By.WpfId("GerebeltGewogenInput"));
+            gerebeltGewogen.Click();
+            gerebeltGewogen.Click();
+            Thread.Sleep(500);
             window.FindElement(By.Name("Abschließen")).Click();
             Thread.Sleep(2000);
             var doc = Session.CreateWindowDriver("DocumentViewerWindow");
@@ -53,7 +57,6 @@ namespace Tests.E2ETests {
         public void Test_1_Minimal() {
             var window = OpenReceiptWindow();
             window.FindElement(By.WpfId("MgNrInput")).SendKeys("101" + Keys.Enter + "GV" + Keys.Enter + "73" + Keys.Enter + Keys.Enter);
-            Thread.Sleep(500);
             FinishDeliveryNote(window);
             window.Close();
         }
@@ -65,7 +68,6 @@ namespace Tests.E2ETests {
             window.FindElement(By.WpfId("WineVarietyInput")).SelectItem("Zweigelt");
             window.FindElement(By.WpfId("GradationKmwInput")).SendKeys("18");
             window.FindElement(By.Name("Wiegen")).Click();
-            Thread.Sleep(500);
             FinishDeliveryNote(window);
             window.Close();
         }
@@ -76,8 +78,6 @@ namespace Tests.E2ETests {
             window.FindElement(By.WpfId("MgNrInput")).SendKeys("102" + Keys.Enter + "GVK");
             window.FindElement(By.WpfId("CultivationInput")).SelectItem("Bio");
             window.FindElement(By.WpfId("GradationOeInput")).SendKeys("73" + Keys.Enter + Keys.Enter);
-
-            Thread.Sleep(500);
             FinishDeliveryNote(window);
             window.Close();
         }