Index: src/wp-includes/taxonomy.php
===================================================================
--- src/wp-includes/taxonomy.php	(revision 32115)
+++ src/wp-includes/taxonomy.php	(working copy)
@@ -3376,6 +3376,10 @@
 	if ( is_wp_error( $term ) )
 		return $term;
 
+	if ( null === $term ) {
+		return new WP_Error( 'invalid_term', __( 'Empty term' ) );
+	}
+
 	// Escape data pulled from DB.
 	$term = wp_slash($term);
 
Index: tests/phpunit/tests/term/wpUpdateTerm.php
===================================================================
--- tests/phpunit/tests/term/wpUpdateTerm.php	(revision 32115)
+++ tests/phpunit/tests/term/wpUpdateTerm.php	(working copy)
@@ -653,4 +653,12 @@
 
 		_unregister_taxonomy( 'wptests_tax' );
 	}
+
+	public function test_wp_update_term_with_null_get_term() {
+		$t = $this->factory->term->create( array( 'taxonomy' => 'category' ) );
+		$found = wp_update_term( $t, 'post_tag', array( 'slug' => 'foo' ) );
+
+		$this->assertWPError( $found );
+		$this->assertSame( 'invalid_term', $found->get_error_code() );
+	}
 }
