diff --git a/feeds.pages.inc b/feeds.pages.inc
index 43a6a7d..7ec4fa9 100644
--- a/feeds.pages.inc
+++ b/feeds.pages.inc
@@ -85,6 +85,13 @@ function feeds_import_form(array $form, array &$form_state, FeedsImporter $impor
     ) + $source_form;
   }
 
+  $progress_importing = $source->progressImporting();
+  $progress_clearing = $source->progressClearing();
+
+  $locked = !lock_may_be_available("feeds_source_{$source->id}_{$source->feed_nid}");
+  $locked = $locked && $progress_importing === FEEDS_BATCH_COMPLETE;
+  $locked = $locked && $progress_clearing === FEEDS_BATCH_COMPLETE;
+
   // Set submit button label based on settings.
   if ($source->importer->config['import_on_create']) {
     $submit = t('Import');
@@ -108,14 +115,18 @@ function feeds_import_form(array $form, array &$form_state, FeedsImporter $impor
   $form['submit'] = array(
     '#type' => 'submit',
     '#value' => $submit,
+    '#disabled' => $locked,
   );
 
   // Disable submit button if import is initiated.
-  $progress = $source->progressImporting();
-  if ($progress !== FEEDS_BATCH_COMPLETE) {
+  if ($locked) {
+    drupal_set_message(t('This feed is currently locked. Use the <a href="@url">Unlock</a> tab to unlock it.', array('@url' => url('import/' . $importer->id . '/unlock'))), 'warning', FALSE);
+  }
+
+  if ($progress_clearing !== FEEDS_BATCH_COMPLETE) {
     $form['submit']['#disabled'] = TRUE;
     $form['submit']['#value'] =
-      t('Importing (@progress %)', array('@progress' => number_format(100 * $progress, 0)));
+      t('Clearing (@progress %)', array('@progress' => number_format(100 * $progress_clearing, 0)));
 
     // Check if import task is queued.
     if ($source->isQueued()) {
@@ -123,6 +134,12 @@ function feeds_import_form(array $form, array &$form_state, FeedsImporter $impor
     }
   }
 
+  if ($progress_importing !== FEEDS_BATCH_COMPLETE) {
+    $form['submit']['#disabled'] = TRUE;
+    $form['submit']['#value'] =
+      t('Importing (@progress %)', array('@progress' => number_format(100 * $progress_importing, 0)));
+  }
+
   return $form;
 }
 
@@ -189,11 +206,23 @@ function feeds_import_tab_form($form, &$form_state, $node) {
   }
 
   // Disable submit button if import is initiated.
-  $progress = $source->progressImporting();
-  if ($progress !== FEEDS_BATCH_COMPLETE) {
+  $progress_importing = $source->progressImporting();
+  $progress_clearing = $source->progressClearing();
+
+  $locked = !lock_may_be_available("feeds_source_{$importer_id}_{$node->nid}");
+  $locked = $locked && $progress_importing === FEEDS_BATCH_COMPLETE;
+  $locked = $locked && $progress_clearing === FEEDS_BATCH_COMPLETE;
+
+  $form['actions']['submit']['#disabled'] = $locked;
+
+  if ($locked) {
+    drupal_set_message(t('This feed is currently locked. Use the <a href="@url">Unlock</a> tab to unlock it.', array('@url' => url('node/' . $node->nid . '/unlock'))), 'warning', FALSE);
+  }
+
+  if ($progress_clearing !== FEEDS_BATCH_COMPLETE) {
     $form['actions']['submit']['#disabled'] = TRUE;
     $form['actions']['submit']['#value'] =
-      t('Importing (@progress %)', array('@progress' => number_format(100 * $progress, 0)));
+      t('Clearing (@progress %)', array('@progress' => number_format(100 * $progress_clearing, 0)));
 
     // Check if import task is queued.
     if ($source->isQueued()) {
@@ -201,6 +230,13 @@ function feeds_import_tab_form($form, &$form_state, $node) {
     }
   }
 
+
+  if ($progress_importing !== FEEDS_BATCH_COMPLETE) {
+    $form['actions']['submit']['#disabled'] = TRUE;
+    $form['actions']['submit']['#value'] =
+      t('Importing (@progress %)', array('@progress' => number_format(100 * $progress_importing, 0)));
+  }
+
   return $form;
 }
 
@@ -309,7 +345,12 @@ function feeds_unlock_tab_form($form, &$form_state, FeedsImporter $importer = NU
     '#value' => feeds_source_status($source),
   );
   $form = confirm_form($form, t('Unlock this importer?'), $form['#redirect'], '', t('Delete'), t('Cancel'), 'confirm feeds update');
-  if ($source->progressImporting() == FEEDS_BATCH_COMPLETE && $source->progressClearing() == FEEDS_BATCH_COMPLETE) {
+
+  $locked = !lock_may_be_available("feeds_source_{$source->id}_{$source->feed_nid}");
+  $locked = $locked || $source->progressImporting() !== FEEDS_BATCH_COMPLETE;
+  $locked = $locked || $source->progressClearing() !== FEEDS_BATCH_COMPLETE;
+
+  if (!$locked) {
     $form['source_locked'] = array(
       '#type' => 'markup',
       '#title' => t('Not Locked'),
