Index: src/wp-includes/link-template.php
===================================================================
--- src/wp-includes/link-template.php	(revision 32943)
+++ src/wp-includes/link-template.php	(working copy)
@@ -907,11 +907,21 @@
  */
 function get_edit_term_link( $term_id, $taxonomy, $object_type = '' ) {
 	$tax = get_taxonomy( $taxonomy );
-	if ( !current_user_can( $tax->cap->edit_terms ) )
+
+	if ( false === $tax ) {
 		return;
+	}
 
+	if ( ! current_user_can( $tax->cap->edit_terms ) ) {
+		return;
+	}
+
 	$term = get_term( $term_id, $taxonomy );
 
+	if ( is_wp_error( $term ) || is_null( $term ) ) {
+		return;
+	}
+
 	$args = array(
 		'action' => 'edit',
 		'taxonomy' => $taxonomy,
Index: tests/phpunit/tests/term/get-edit-term-link.php
===================================================================
--- tests/phpunit/tests/term/get-edit-term-link.php	(revision 0)
+++ tests/phpunit/tests/term/get-edit-term-link.php	(working copy)
@@ -0,0 +1,49 @@
+<?php
+
+/**
+ * @group taxonomy
+ */
+class Tests_Term_GetEditTermLink extends WP_UnitTestCase {
+
+	public function setUp() {
+		parent::setUp();
+		wp_set_current_user( $this->factory->user->create( array( 'role' => 'administrator' ) ) );
+		register_taxonomy( 'wptests_tax', 'post' );
+
+	}
+
+	public function test_get_edit_term_link_default() {
+
+		$term1 = $this->factory->term->create( array(
+			'taxonomy' => 'wptests_tax',
+			'name' => 'foo',
+		) );
+
+		$actual = get_edit_term_link( $term1, 'wptests_tax' );
+		$expected = 'http://example.org/wp-admin/edit-tags.php?action=edit&taxonomy=wptests_tax&tag_ID=' . $term1 . '&post_type=post';
+		$this->assertEquals( $actual, $expected );
+	}
+
+	public function test_get_edit_term_link_invalid_id() {
+
+		$term1 = $this->factory->term->create( array(
+			'taxonomy' => 'wptests_tax',
+			'name' => 'foo',
+		) );
+
+		$actual = get_edit_term_link( 12345, 'wptests_tax' );
+		$this->assertNull( $actual );
+	}
+
+	public function test_get_edit_term_link_empty_id() {
+		$actual = get_edit_term_link( '', 'wptests_tax' );
+		$this->assertNull( $actual );
+	}
+
+	public function test_get_edit_term_link_bad_tax() {
+		$actual = get_edit_term_link( '', 'bad_tax' );
+		$this->assertNull( $actual );
+	}
+
+
+}
