Index: /controller/wpsg_BasketController.class.php
===================================================================
--- /controller/wpsg_BasketController.class.php	(revision 8098)
+++ /controller/wpsg_BasketController.class.php	(revision 8099)
@@ -337,10 +337,10 @@
 			if (!wpsg_checkInput($_REQUEST['order_id'], WPSG_SANITIZE_INT)) throw \wpsg\Exception::getSanitizeException();
 			else {
-						
+								
 				// Hash verifizierne
 				$order_id = intval($_REQUEST['order_id']);
 				
 				if ($order_id <= 0) throw \wpsg\Exception::getInvalidValueException();
-			
+							
 				$oOrder = wpsg_order::getInstance($order_id);
 				
@@ -733,7 +733,16 @@
 				
 				parent::dispatch();
+								
+				$this->shop->checkCustomerPresetCountry();
 				
 				// Bestellung abschlieÃen
-				$this->shop->basket->initFromSession();
+				$this->shop->basket->initFromSession(true);
+				
+				// Basket muss aufgebaut sein
+				$this->shop->checkShippingAvailable();
+				$this->shop->checkPaymentAvailable();            
+				$this->shop->checkCustomerPreset();
+				 
+				\wpsg\wpsg_calculation::getSessionCalculation()->update();
 				
 				$bOK = $this->shop->basket->checkCheckout();
Index: /controller/wpsg_ShopController.class.php
===================================================================
--- /controller/wpsg_ShopController.class.php	(revision 8098)
+++ /controller/wpsg_ShopController.class.php	(revision 8099)
@@ -1992,21 +1992,15 @@
 								 
 			}
-		 
-			// GÃŒltigkeit checken
-			if (($_SESSION['wpsg']['checkout']['shipping']??'') !== '') { 
+			
+			// GÃŒltigkeit checken			
+			if (!array_key_exists($_SESSION['wpsg']['checkout']['shipping'], $this->arShipping) && sizeof($this->arShipping) > 0) {
 			 
-				if (!array_key_exists($_SESSION['wpsg']['checkout']['shipping'], $this->arShipping) && sizeof($this->arShipping) > 0) {
-				 
-					$this->basket->arCheckout['shipping'] = array_keys($this->arShipping)[0];;
-					
-					$_SESSION['wpsg']['checkout']['shipping'] = array_keys($this->arShipping)[0];
-
-					$oCalculation->update();											
-										
-				}
-				
-				$this->view['basket']['checkout']['shipping'] = $_SESSION['wpsg']['checkout']['shipping'];
-
-			}
+				$this->basket->arCheckout['shipping'] = array_keys($this->arShipping)[0];;					
+				$_SESSION['wpsg']['checkout']['shipping'] = array_keys($this->arShipping)[0];
+				$oCalculation->update();											
+									
+			}
+			
+			$this->view['basket']['checkout']['shipping'] = $_SESSION['wpsg']['checkout']['shipping'];
 
 			if (!wpsg_isSizedString($_SESSION['wpsg']['checkout']['payment']) && wpsg_isSizedString($this->get_option('wpsg_customerpreset_payment')) && sizeof($_SESSION['wpsg']['basket']??[]) > 0) {
Index: /controller/wpsg_SystemController.class.php
===================================================================
--- /controller/wpsg_SystemController.class.php	(revision 8098)
+++ /controller/wpsg_SystemController.class.php	(revision 8099)
@@ -52,6 +52,5 @@
 		 * Wird von den abgeleiteten Controllern aufgerufen wenn sie die Ausgabe ÃŒbernehmen
 		 */
-		public function dispatch()
-		{
+		public function dispatch() {
 			
 			$this->shop->checkEscape();
Index: /lib/wpsg_basket.class.php
===================================================================
--- /lib/wpsg_basket.class.php	(revision 8098)
+++ /lib/wpsg_basket.class.php	(revision 8099)
@@ -1223,6 +1223,7 @@
 			{
 				
-				$this->shop->checkShippingAvailable();
-				$this->shop->checkPaymentAvailable();
+				// Das wird jetzt eher gemacht
+				//$this->shop->checkShippingAvailable();
+				//$this->shop->checkPaymentAvailable();
 				
 				// Versandart prÃŒfen
Index: /lib/wpsg_calculation.class.php
===================================================================
--- /lib/wpsg_calculation.class.php	(revision 8098)
+++ /lib/wpsg_calculation.class.php	(revision 8099)
@@ -891,5 +891,5 @@
          */
         public function toDB($id = false, $db_data = [], $finish_order = false) {
-	
+							
 			$id = $this->db->fetchOne("SELECT `id` FROM `".WPSG_TBL_ORDER."` WHERE `id` = '".wpsg_q($id)."' ");
         	if (!wpsg_isSizedInt($id)) $id = false;
