diff --git a/gmap_markerinfo.inc b/gmap_markerinfo.inc
index 23edd1f..eadcfd5 100644
--- a/gmap_markerinfo.inc
+++ b/gmap_markerinfo.inc
@@ -9,6 +9,14 @@
  */
 
 /**
+ * Implements hook_gmap_markerfiles_info().
+ */
+function gmap_gmap_markerfiles_info() {
+  $markerdir = variable_get('gmap_markerfiles', drupal_get_path('module', 'gmap') .'/markers');
+  return file_scan_directory($markerdir, '.*\.ini$');
+}
+
+/**
  * Get marker icon data for constructing json object.
  */
 function _gmap_get_icondata() {
@@ -41,7 +49,11 @@ function _gmap_get_icondata() {
   $inis = array();
   if (is_array($markerdirs)) {
     foreach ($markerdirs as $markerdir) {
-      $inifiles = file_scan_directory($markerdir, '/.*\.ini$/');
+      //$inifiles = file_scan_directory($markerdir, '/.*\.ini$/');
+//--------------
+      $inifiles = module_invoke_all('gmap_markerfiles_info');
+      drupal_alter('gmap_markerfiles_info', $inifiles);
+
       // Parse the ini files and store by path.
       foreach ($inifiles as $file) {
         $path = substr($file->uri, 0, -strlen($file->filename));
@@ -166,6 +178,8 @@ function _gmap_get_icondata() {
   foreach ($icons as $path => $v) {
     unset($icons[$path]['tempf']);
   }
+
+
   return $icons;
 }
 
@@ -257,7 +271,10 @@ function _gmap_get_marker_titles() {
   $titles = array();
   if (is_array($markerdirs)) {
     foreach ($markerdirs as $markerdir) {
-      $inifiles = file_scan_directory($markerdir, '/.*\.ini$/');
+
+      $inifiles = module_invoke_all('gmap_markerfiles_info');
+      drupal_alter('gmap_markerfiles_info', $inifiles);
+
       // Parse the ini files and store by path.
       $inis = array();
       foreach ($inifiles as $file) {
