diff --git a/core/modules/views/views.module b/core/modules/views/views.module
index 9075033..74e093d 100644
--- a/core/modules/views/views.module
+++ b/core/modules/views/views.module
@@ -1817,3 +1817,21 @@ function views_cache_get($cid, $use_language = FALSE) {
 
   return cache('views_info')->get($cid);
 }
+
+/**
+ * Implement hook_form_alter for the views block form.
+ *
+ * Views sets up its own plugin portions of the block configuration form but
+ * assigning machine names is not handled by the plugin so we do this here.
+ */
+function views_form_block_form_alter(&$form, &$form_state) {
+  if ($form['settings']['module']['#value'] == 'views') {
+    $block_plugin = $form_state['build_info']['callback_object']->getEntity()->getPlugin();
+    list($plugin, $delta) = explode(':', $block_plugin->getPluginId());
+    list($name, $displayID) = explode('-', $delta, 2);
+    unset($form['machine_name']['#machine_name']['source']);
+    $form['machine_name']['#default_value'] = 'views_block__' . $name . '_' . $displayID;
+    $form['machine_name']['#access'] = FALSE;
+  } 
+}
+
