--- /home/coert/workspace-php/drupal7_dub2_modules/modules/purge/purge.inc	2012-04-22 00:29:22.454221176 +0200
+++ /home/coert/workspace-php/dub-2.0_modules-release-1.0/purge/purge.inc	2012-04-22 13:55:34.702169302 +0200
@@ -24,9 +24,20 @@
   foreach ($purge_urls as $purge_url) {
     $purge_url_parts = parse_url($purge_url);
     // Determine the host
-    $purge_url_host = $purge_url_parts['host'];
+    if (isset($purge_url_parts['host'])) {
+      $purge_url_host = $purge_url_parts['host'];
+    }
+    else {
+      // If the host wasn't passes (option of Cache Expire), then we get the host from the
+      // global $base_url concatenated with the $base_path and the purge path (from $purge_url)
+      global $base_url, $base_path;
+      $purge_url_parts = parse_url($base_url);
+      $purge_url_parts['path'] = $base_path . $purge_url;
+      $purge_url_host = $purge_url_parts['host'];
+    }
+
     // Add portnames to the host if any are set
-    if (array_key_exists('port', $purge_url_parts)) {
+    if (isset($purge_url_parts['port'])) {
       $purge_url_host = $purge_url_host . ":" . $purge_url_parts['port'];
     }
 
@@ -98,6 +109,7 @@
       $current_purge_request++;
     }
   }
+
   // Issue the requests using curl (for now)
   $purge_request_results = purge_issue_requests_curl($purge_requests);
   return $purge_request_results;
@@ -135,8 +147,8 @@
       $select_result = curl_multi_select($curl_purges);
     }
     if ($multi_result != CURLM_OK || $select_result == -1) {
-    // @TODO: error handling. Something truly awkward happened.
-    return FALSE;
+      // @TODO: error handling. Something truly awkward happened.
+      return FALSE;
     }
   } while ($select_result != -1 && $active && $multi_result == CURLM_OK);
   ob_end_clean();
