diff --git a/query.go b/query.go
index <HASH>..<HASH> 100644
--- a/query.go
+++ b/query.go
@@ -217,11 +217,10 @@ func First(subject Enumerable) (retval interface{}, err error) {
 
 	var isOpen bool
 
-	if retval, isOpen = <-subject.Enumerate(nil); isOpen {
+	if retval, isOpen = <-subject.Enumerate(done); isOpen {
 		err = nil
 	}
-
-	subject.Enumerate(done)
+	close(done)
 
 	return
 }
Fixing memory leak in `First(Enumerable)` impl.