diff --git a/builtin/providers/aws/resources.go b/builtin/providers/aws/resources.go
index <HASH>..<HASH> 100644
--- a/builtin/providers/aws/resources.go
+++ b/builtin/providers/aws/resources.go
@@ -145,6 +145,11 @@ func resource_aws_instance_refresh(
 		return s, err
 	}
 
+	// If nothing was found, then return no state
+	if len(resp.Reservations) == 0 {
+		return nil, nil
+	}
+
 	instance := &resp.Reservations[0].Instances[0]
 
 	// If the instance is terminated, then it is gone
diff --git a/terraform/terraform.go b/terraform/terraform.go
index <HASH>..<HASH> 100644
--- a/terraform/terraform.go
+++ b/terraform/terraform.go
@@ -132,6 +132,9 @@ func (t *Terraform) refreshWalkFn(result *State) depgraph.WalkFunc {
 		if err != nil {
 			return nil, err
 		}
+		if rs == nil {
+			rs = new(ResourceState)
+		}
 
 		// Fix the type to be the type we have
 		rs.Type = r.State.Type
providers/aws: if no reservations, no instance