diff --git a/apps.info b/apps.info
index aad6715..536336c 100644
--- a/apps.info
+++ b/apps.info
@@ -4,8 +4,6 @@ package = Distribution Management
 version = 7.x-1.0
 core = 7.x
 
-dependencies[] = update
-
 files[] = apps.module
 files[] = apps.updater.inc
 files[] = apps.installer.inc
diff --git a/apps.installer.inc b/apps.installer.inc
index 810ebff..8a799c3 100644
--- a/apps.installer.inc
+++ b/apps.installer.inc
@@ -14,14 +14,20 @@
  *
  */
 function apps_download_apps($app) {
-  $download_batch = apps_download_apps_batch(array($app));
-  batch_set($download_batch);
-  batch_process($_SESSION['apps_install_next']);
+  if (module_enabled('update') {
+    $download_batch = apps_download_apps_batch(array($app));
+    batch_set($download_batch);
+    batch_process($_SESSION['apps_install_next']);
+  }
+  else {
+    $link = user_permission('administer modules') ? l(t('Go enable the module'), 'admin/modules') : '':
+    drupal_set_message("To download or update apps you need the update module installed. !link", array('!link' => $link));
+  }
 }
 
-/** 
+/**
  * Make the batch for downloading modules for app.
- * 
+ *
  * Split out for use in apps.profile.inc
  */
 function apps_download_apps_batch($apps) {
@@ -85,7 +91,7 @@ function apps_download_apps_list($app) {
  * Batch callback invoked when the download batch is completed.
  *
  * A pass though to update_manager_download_batch_finished
- * but we set $_GET['destination'] to control the drupal_goto that is 
+ * but we set $_GET['destination'] to control the drupal_goto that is
  * in that function
  */
 function apps_download_batch_finished($success, $results) {
@@ -147,8 +153,8 @@ function apps_download_batch($project, $url, $type, &$context) {
 
 /**
  * Wrapper for _update_manager_extract_directory()
- * 
- * Since libraries and modules can live in the same location, we need to 
+ *
+ * Since libraries and modules can live in the same location, we need to
  * namespace the types so they don't collide like the colorbox module.
  */
 function apps_extract_directory($type = '') {
@@ -221,7 +227,7 @@ function apps_install_downloads() {
 
 
 /**
- * The batch builder and processor for moving files to drupal 
+ * The batch builder and processor for moving files to drupal
  *
  * taken from update_authorize_run_update
  * builds a batch and process it for installing modules from the templocation
diff --git a/apps.profile.inc b/apps.profile.inc
index 523af75..84cd9f4 100644
--- a/apps.profile.inc
+++ b/apps.profile.inc
@@ -1,12 +1,12 @@
 <?php
 /**
- * This file handles all the functions for downloading, transferring and 
+ * This file handles all the functions for downloading, transferring and
  * installing apps during the install process.
  */
 
 /**
  * Add install tasks to profile install tasks.
- * 
+ *
  * See apps.api.php for use.
  *
  */
@@ -18,7 +18,7 @@ function apps_profile_install_tasks($install_state, $apps_server) {
   // Only use apps forms during interactive installs.
   $tasks = array();
   $apps_server_name = $apps_server['machine name'];
-
+  $update_enabled = function_exists('module_enabled') && module_enabled('update');
   $task_screen = 'apps_profile_apps_select_form_' . $apps_server_name;
   $_SESSION['apps_servers'][$task_screen] = $apps_server;
   $tasks = array(
@@ -31,32 +31,33 @@ function apps_profile_install_tasks($install_state, $apps_server) {
     $task_screen => array(
       'display_name' => apps_profile_get_server_name($apps_server),
       'type' => 'form',
+      'run' => $update_enabled ? INSTALL_TASK_RUN_IF_NOT_COMPLETED : INSTALL_TASK_SKIP,
       'function' => 'apps_profile_apps_select_form',
     ),
     'apps_profile_download_app_modules_' . $apps_server_name => array(
       'display' => FALSE,
       'type' => 'batch',
       // If this is not an interactive install, we can download apps only if we have write access.
-      'run' => (!empty($_SESSION['apps_downloads']) && ($install_state['interactive'] || apps_installer_has_write_access())) ? INSTALL_TASK_RUN_IF_NOT_COMPLETED : INSTALL_TASK_SKIP,
+      'run' => ($update_enabled && !empty($_SESSION['apps_downloads']) && ($install_state['interactive'] || apps_installer_has_write_access())) ? INSTALL_TASK_RUN_IF_NOT_COMPLETED : INSTALL_TASK_SKIP,
       'function' => 'apps_profile_download_app_modules',
     ),
     // Only need this if using filetransfer authorization.
     'apps_profile_authorize_transfer_' . $apps_server_name => array(
       'display' => FALSE,
       'type' => 'form',
-      'run' => (!empty($_SESSION['apps_downloads']) && $install_state['interactive'] && !apps_installer_has_write_access()) ? INSTALL_TASK_RUN_IF_NOT_COMPLETED : INSTALL_TASK_SKIP,
+      'run' => ($update_enabled && !empty($_SESSION['apps_downloads']) && $install_state['interactive'] && !apps_installer_has_write_access()) ? INSTALL_TASK_RUN_IF_NOT_COMPLETED : INSTALL_TASK_SKIP,
       'function' => 'apps_profile_authorize_transfer',
     ),
     'apps_profile_install_app_modules_' . $apps_server_name => array(
       'display' => FALSE,
       'type' => 'batch',
-      'run' => (!empty($_SESSION['apps_downloads']) && ($install_state['interactive'] || apps_installer_has_write_access())) ? INSTALL_TASK_RUN_IF_NOT_COMPLETED : INSTALL_TASK_SKIP,
+      'run' => ($update_enabled && !empty($_SESSION['apps_downloads']) && ($install_state['interactive'] || apps_installer_has_write_access())) ? INSTALL_TASK_RUN_IF_NOT_COMPLETED : INSTALL_TASK_SKIP,
       'function' => 'apps_profile_install_app_modules',
     ),
     'apps_profile_enable_app_modules_' . $apps_server_name => array(
       'display' => FALSE,
       'type' => 'batch',
-      'run' => (isset($_SESSION['apps'])) ? INSTALL_TASK_RUN_IF_NOT_COMPLETED : INSTALL_TASK_SKIP,
+      'run' => ($update_enabled && isset($_SESSION['apps'])) ? INSTALL_TASK_RUN_IF_NOT_COMPLETED : INSTALL_TASK_SKIP,
       'function' => 'apps_profile_enable_app_modules',
     ),
   );
@@ -175,7 +176,7 @@ function apps_profile_download_app_modules(&$install_state) {
     $apps[] = $_SESSION['apps_manifest'][$name];
   }
   $batch = apps_download_apps_batch($apps);
-  
+
   $batch['finished'] = 'apps_profile_download_batch_finished';
   return $batch;
 }
@@ -221,8 +222,8 @@ function apps_profile_authorize_transfer($form, $form_state, &$install_state) {
 }
 
 /**
- * Callback after the authorize_filetransfer_form_submit. 
- * 
+ * Callback after the authorize_filetransfer_form_submit.
+ *
  * Save the file transfer protocol.
  */
 function apps_profile_authorize_transfer_save($filetransfer, $nothing = array()) {
@@ -236,7 +237,7 @@ function apps_profile_install_app_modules(&$install_state) {
   $batch = array();
   if (!empty($_SESSION['update_manager_update_projects'])) {
     apps_include('installer');
-    
+
     // Make sure the Updater registry is loaded.
     drupal_get_updaters();
 
@@ -255,7 +256,7 @@ function apps_profile_install_app_modules(&$install_state) {
         );
       }
     }
-    
+
     if (isset($_SESSION['filetransfer'])) {
       // We have authenticated a filetransfer so use it.
       $filetransfer = $_SESSION['filetransfer'];
@@ -362,7 +363,7 @@ function app_profile_enable_module($module, $module_name, &$context) {
   $context['finished'] = TRUE;
 }
 
-/**  
+/**
  * Batch callback invoked when enable batch is completed.
  */
 function apps_profile_enable_app_modules_finished($success, $results) {
@@ -395,7 +396,7 @@ function apps_profile_enable_app_modules_finished($success, $results) {
 /**
  * Function to check and make sure all dependencies are available. This will stop stray apps
  * or broken downloads from stopping the install process for everything.
- * 
+ *
  * Copied from module_enable() in module.inc
  */
 function apps_profile_check_dependencies($module_list) {
@@ -424,7 +425,7 @@ function apps_profile_check_dependencies($module_list) {
       }
     }
   }
-  
+
   // If we make it this far then everything is good.
   return TRUE;
 }
