diff --git a/opentrafficshaper/utils.pm b/opentrafficshaper/utils.pm
index 9252ae17beb877a4545f0bbe9f2f3300418921b4..f4459a85565ba8146e371cf02d86c0c9865e5628 100644
--- a/opentrafficshaper/utils.pm
+++ b/opentrafficshaper/utils.pm
@@ -64,8 +64,8 @@ sub getHashChanges
 
 	foreach my $key (@{$keys}) {
 		# We can only do this if we have a new value
-		if (defined($new->{$key})) {
-			if (!defined($orig->{$key}) || $orig->{$key} ne $new->{$key}) {
+		if (exists($new->{$key})) {
+			if (!defined($orig->{$key}) || !defined($new->{$key}) || $orig->{$key} ne $new->{$key}) {
 				$changed->{$key} = $new->{$key};
 			}
 		}