diff --git src/wp-admin/js/theme.js src/wp-admin/js/theme.js
index 1be6f18..924f299 100644
--- src/wp-admin/js/theme.js
+++ src/wp-admin/js/theme.js
@@ -610,6 +610,11 @@ themes.view.Theme = wp.Backbone.View.extend({
 
 	updateTheme: function( event ) {
 		var _this = this;
+
+		if ( ! this.model.get( 'hasPackage' ) ) {
+			return;
+		}
+
 		event.preventDefault();
 
 		wp.updates.maybeRequestFilesystemCredentials( event );
diff --git src/wp-admin/themes.php src/wp-admin/themes.php
index 3be8fba..c332f59 100644
--- src/wp-admin/themes.php
+++ src/wp-admin/themes.php
@@ -252,7 +252,11 @@ foreach ( $themes as $theme ) :
 
 	<?php if ( $theme['hasUpdate'] ) : ?>
 		<div class="update-message notice inline notice-warning notice-alt">
+		<?php if ( $theme['hasPackage'] ) : ?>
 			<p><?php _e( 'New version available. <button class="button-link" type="button">Update now</button>' ); ?></p>
+		<?php else : ?>
+			<p><?php _e( 'New version available.' ); ?></p>
+		<?php endif; ?>
 		</div>
 	<?php endif; ?>
 
