diff --git a/entity_translation.install b/entity_translation.install
index ffff0b8..258d008 100644
--- a/entity_translation.install
+++ b/entity_translation.install
@@ -93,6 +93,32 @@ function entity_translation_install() {
 
   // Make translation use the content language type.
   variable_set('translation_language_type', LANGUAGE_TYPE_CONTENT);
+
+  // Grant the 'edit original values' permission, so we don't break editing on existing sites.
+  $msg = _entity_translation_grant_permissions();
+  drupal_set_message($msg);
+}
+
+/**
+ * Grant 'edit original values' permission to roles which have entity editing permissions.
+ */
+function _entity_translation_grant_permissions() {
+  $permissions = array('administer nodes');
+  foreach (node_permissions_get_configured_types() as $type) {
+    $permissions[] = "create $type content";
+    $permissions[] = "edit own $type content";
+    $permissions[] = "edit any $type content";
+  }
+  $roles = user_roles(FALSE, $permissions);
+  foreach ($roles as $rid => $role) {
+    user_role_grant_permissions($rid, array('edit original values'));
+  }
+
+  $t = get_t();
+  return $t('The %permission permission has been assigned to the following roles: %roles', array(
+    '%permission' => 'edit original values',
+    '%roles' => implode(', ', $roles),
+  ));
 }
 
 /**
@@ -167,3 +193,10 @@ function entity_translation_update_7001() {
     ->condition('name', 'entity_translation')
     ->execute();
 }
+
+/**
+ * Grant 'edit original values' permission to roles which have entity editing permissions.
+ */
+function entity_translation_update_7002() {
+  return _entity_translation_grant_permissions();
+}
