diff --git a/goon.go b/goon.go
index <HASH>..<HASH> 100644
--- a/goon.go
+++ b/goon.go
@@ -107,9 +107,7 @@ func (g *Goon) extractKeys(src interface{}, putRequest bool) ([]*datastore.Key, 
 // is incomplete.
 func (g *Goon) Key(src interface{}) *datastore.Key {
 	if k, err := g.KeyError(src); err == nil {
-		if !k.Incomplete() {
-			return k
-		}
+		return k
 	}
 	return nil
 }
diff --git a/goon_test.go b/goon_test.go
index <HASH>..<HASH> 100644
--- a/goon_test.go
+++ b/goon_test.go
@@ -44,8 +44,8 @@ func TestGoon(t *testing.T) {
 	if k, err := n.KeyError(noid); err == nil && !k.Incomplete() {
 		t.Error("expected incomplete on noid")
 	}
-	if n.Key(noid) != nil {
-		t.Error("expected to not find a key")
+	if n.Key(noid) == nil {
+		t.Error("expected to find a key")
 	}
 
 	var keyTests = []keyTest{
Incomplete keys aren't errors