diff --git a/l10n_update.install b/l10n_update.install
index a622e89..2b582e5 100644
--- a/l10n_update.install
+++ b/l10n_update.install
@@ -217,7 +217,9 @@ function l10n_update_requirements($phase) {
  */
 function l10n_update_update_6001() {
   $ret = array();
-  db_add_field($ret, 'locales_target', 'l10n_status', array('type' => 'int', 'not null' => TRUE, 'default' => 0));
+  if (!db_column_exists('locales_target', 'l10n_status')) {
+    db_add_field($ret, 'locales_target', 'l10n_status', array('type' => 'int', 'not null' => TRUE, 'default' => 0));
+  }
   return $ret;
 }
 
@@ -225,7 +227,10 @@ function l10n_update_update_6001() {
  * Add status field to locales_target.
  */
 function l10n_update_update_6002() {
+// details see http://drupal.org/node/857442
   $ret = array();
-  db_change_field($ret, 'locales_target', 'status', 'l10n_status', array('type' => 'int', 'not null' => TRUE, 'default' => 0));
+  if (!db_column_exists('locales_target', 'l10n_status') && db_column_exists('locales_target', 'status') && !module_exists('i18nstrings')) {
+    db_change_field($ret, 'locales_target', 'status', 'l10n_status', array('type' => 'int', 'not null' => TRUE, 'default' => 0));
+    }
   return $ret;
-}
\ No newline at end of file
+}
