Index: /model/wpsg_product.class.php
===================================================================
--- /model/wpsg_product.class.php	(revision 6288)
+++ /model/wpsg_product.class.php	(revision 6289)
@@ -582,11 +582,25 @@
 			$arReturn = array();
 		
+			// Manche Filterungen erfordern leider Objektzugriff
+			$force_load = false;
+			
+			if (wpsg_isSizedInt($arFilter['hidesoldout'])) $force_load = true;
+			
 			foreach ($arID as $id)
 			{
 		
-				if ($load === true) $arReturn[$id] = self::getInstance($id);
+				if ($load === true || $force_load === true)
+				{
+										
+					$arReturn[$id] = self::getInstance($id);
+										
+					if (wpsg_isSizedInt($arFilter['hidesoldout']) && !$arReturn[$id]->canOrder()) unset($arReturn[$id]); 
+					
+					if (isset($arReturn[$id]) && $force_load === true && $load === false) $arReturn[$id] = $id;
+					
+				}
 				else $arReturn[$id] = $id;
 		
-			}
+			} 
 		
 			return $arReturn;
Index: /mods/wpsg_mod_productview.class.php
===================================================================
--- /mods/wpsg_mod_productview.class.php	(revision 6288)
+++ /mods/wpsg_mod_productview.class.php	(revision 6289)
@@ -363,4 +363,5 @@
 			}
 						 
+			if (!wpsg_isSizedInt($atts['showsoldout'])) $arFilter = wpsg_array_merge($arFilter, array('hidesoldout' => '1'));
 			if (wpsg_isSizedString($atts['filter']['price_min'])) $arFilter = wpsg_array_merge($arFilter, array('price_min' => $atts['filter']['price_min']));
 			if (wpsg_isSizedString($atts['filter']['price_max'])) $arFilter = wpsg_array_merge($arFilter, array('price_max' => $atts['filter']['price_max']));
