diff --git a/profiles/unl_profile/unl_profile.install b/profiles/unl_profile/unl_profile.install
index da07a1e5a9c6bd726b8f73ff5f4b5e022ff8a621..3c7131a62a99d67f660b0c9d6815020afcd776be 100644
--- a/profiles/unl_profile/unl_profile.install
+++ b/profiles/unl_profile/unl_profile.install
@@ -318,6 +318,7 @@ EOF;
 
   $files_dir = $settings_dir . '/files';
   chmod($files_dir, 0777);
+  chmod($files_dir . '/styles', 0777);
 
   
   // IMCE setup (currently cannot be shared between sites)
diff --git a/sites/all/modules/unl/unl.module b/sites/all/modules/unl/unl.module
index 1d3b0547c09ea59a4e026be94505a41583761d45..4bbdf8dd92c3ac1282b5e36cf0e5ff46930b74b1 100644
--- a/sites/all/modules/unl/unl.module
+++ b/sites/all/modules/unl/unl.module
@@ -486,6 +486,15 @@ function unl_menu_alter(&$items) {
     $items['node/%node/moderation']['theme callback'] = '_unl_get_admin_theme';
     $items['node/%node/moderation/%/unpublish']['theme callback'] = '_unl_get_admin_theme';
   }
+  
+  // Add a menu hook for the image module to use clean file URLs.
+  if (variable_get('unl_clean_file_url') && module_exists('image')) {
+    $directory_path = file_stream_wrapper_get_instance_by_scheme('public')->getDirectoryPath();
+    $items['styles/%image_style'] = $items[$directory_path . '/styles/%image_style'];
+    // This parameter is how "deep" to look into request_path() for the image's path.
+    // Since clean URLs have no "prefix", we can just set it to 1.
+    $items['styles/%image_style']['page arguments'] = array(1);
+  }
 }
 
 /**