diff --git a/src/core.js b/src/core.js
index 267bc104..a74f0fec 100644
--- a/src/core.js
+++ b/src/core.js
@@ -43,9 +43,8 @@ jQuery.fn = jQuery.prototype = {
 
 		// Handle $(DOMElement)
 		if ( selector.nodeType ) {
-			this[0] = selector;
+			this.context = this[0] = selector;
 			this.length++;
-			this.context = selector;
 			return this;
 		}
 
@@ -132,7 +131,7 @@ jQuery.fn = jQuery.prototype = {
 			this.toArray() :
 
 			// Return just the object
-			( num < 0 ? this.toArray.call(this, num)[0] : this[ num ] );
+			( num < 0 ? this.toArray(num)[ 0 ] : this[ num ] );
 	},
 
 	// Take an array of elements and push it onto the stack
diff --git a/test/unit/core.js b/test/unit/core.js
index 8aa883ae..28be6533 100644
--- a/test/unit/core.js
+++ b/test/unit/core.js
@@ -12,7 +12,7 @@ test("Basic requirements", function() {
 });
 
 test("jQuery()", function() {
-	expect(11);
+	expect(12);
 
 	// Basic constructor's behavior
 
@@ -21,6 +21,9 @@ test("jQuery()", function() {
 	equals( jQuery(null).length, 0, "jQuery(null) === jQuery([])" );
 	equals( jQuery("").length, 0, "jQuery('') === jQuery([])" );
 
+	var obj = jQuery("div")
+	equals( jQuery(obj).selector, "div", "jQuery(jQueryObj) == jQueryObj" );
+
 		// can actually yield more than one, when iframes are included, the window is an array as well
 	equals( 1, jQuery(window).length, "Correct number of elements generated for jQuery(window)" );