diff --git a/library/rules_shipping_framework.php b/library/rules_shipping_framework.php
index 73e9b6e49c110dd04d36a6f5158845208de7d40c..8841f2a08f7d61d21f3f70dbac72c44a9de0ca1d 100644
--- a/library/rules_shipping_framework.php
+++ b/library/rules_shipping_framework.php
@@ -425,7 +425,7 @@ class RulesShippingFramework {
 			}
 		}
 		// None of the rules matched, so return NULL, but keep the evaluated results;
-		$this->match[$id] = $result;
+		$this->match[$id] = NULL;
 		return NULL;
 	}
 
@@ -453,7 +453,7 @@ class RulesShippingFramework {
 			$this->parseMethodRules($method);
 		// TODO: This needs to be redone sooner or later!
 		$match = $this->evaluateMethodRules ($cart, $method);
-		if ($match && !is_null ($match['rule'])) {
+		if ($match && isset($match['rule']) && !is_null ($match['rule'])) {
 			$this->setMethodCosts($method, $match, null);
 			// If NoShipping is set, this method should NOT offer any shipping at all, so return FALSE, otherwise TRUE
 			// If the rule has a name, print it as warning (otherwise don't print anything)
@@ -484,7 +484,7 @@ class RulesShippingFramework {
 		if (!isset($this->rules[$id])) 
 			$this->parseMethodRules($method);
 		$match = $this->evaluateMethodRules ($cart, $method);
-		if ($match) {
+		if ($match && isset($match['rule']) && !is_null ($match['rule'])) {
 			if ($this->handleNoShipping($match, $method)) {
 				return $results;
 			}