diff --git a/agkyra/syncer/pithos_client.py b/agkyra/syncer/pithos_client.py
index 810b241a6ae37c6cf7e80a7c9aafec96b111249a..6ab3c3e30cf600863f5095358821941674eda4ab 100644
--- a/agkyra/syncer/pithos_client.py
+++ b/agkyra/syncer/pithos_client.py
@@ -34,7 +34,7 @@ def heartbeat_event(settings, heartbeat, objname):
 
     def set_log():
         with heartbeat.lock() as hb:
-            registered_name = utils.reg_name(objname)
+            registered_name = utils.reg_name(settings, objname)
             beat = hb.get(registered_name)
             assert beat is not None
             new_beat = {"ident": beat["ident"],
diff --git a/agkyra/syncer/syncer.py b/agkyra/syncer/syncer.py
index 11fec78d783f8e7834b7a4617e5bd9486641f5f3..c1a2e3f2ae82525c5031e9861e22a478f60a64ac 100644
--- a/agkyra/syncer/syncer.py
+++ b/agkyra/syncer/syncer.py
@@ -105,6 +105,9 @@ class FileSyncer(object):
         except common.DatabaseError:
             pass
 
+    def reg_name(self, objname):
+        return utils.reg_name(self.settings, objname)
+
     @transaction()
     def _probe_files(self, archive, objnames, ident):
         for objname in objnames:
@@ -117,7 +120,7 @@ class FileSyncer(object):
         db_state = db.get_state(archive, objname)
         ref_state = db.get_state(self.SYNC, objname)
         with self.heartbeat.lock() as hb:
-            beat = hb.get(utils.reg_name(objname))
+            beat = hb.get(self.reg_name(objname))
             if beat is not None:
                 if utils.younger_than(
                         beat["tstamp"], self.settings.action_max_wait):
@@ -206,7 +209,7 @@ class FileSyncer(object):
         if states is not None:
             with self.heartbeat.lock() as hb:
                 beat = {"ident": ident, "tstamp": utils.time_stamp()}
-                hb[utils.reg_name(objname)] = beat
+                hb[self.reg_name(objname)] = beat
         return states
 
     def _do_decide_file_sync(self, objname, master, slave, ident,
@@ -223,7 +226,7 @@ class FileSyncer(object):
         decision_serial = decision_state.serial
 
         with self.heartbeat.lock() as hb:
-            beat = hb.get(utils.reg_name(objname))
+            beat = hb.get(self.reg_name(objname))
             logger.debug("object: %s heartbeat: %s" % (objname, beat))
             if beat is not None:
                 if beat["ident"] == ident:
@@ -325,7 +328,7 @@ class FileSyncer(object):
         serial = state.serial
         objname = state.objname
         with self.heartbeat.lock() as hb:
-            hb.pop(utils.reg_name(objname))
+            hb.pop(self.reg_name(objname))
         if hard:
             logger.warning(
                 "Marking failed serial %s for archive: %s, object: '%s'" %
@@ -348,7 +351,7 @@ class FileSyncer(object):
         objname = synced_source_state.objname
         target = synced_target_state.archive
         with self.heartbeat.lock() as hb:
-            hb.pop(utils.reg_name(objname))
+            hb.pop(self.reg_name(objname))
         msg = messaging.AckSyncMessage(
             archive=target, objname=objname, serial=serial,
             logger=logger)
diff --git a/agkyra/syncer/utils.py b/agkyra/syncer/utils.py
index 3f83a3204c3f3fe2420450f9c89c54bc86bccff6..99b7b6a981b160069a525cb1c1a415792bcd58c3 100644
--- a/agkyra/syncer/utils.py
+++ b/agkyra/syncer/utils.py
@@ -103,8 +103,8 @@ def younger_than(tstamp, seconds):
     return delta < datetime.timedelta(seconds=seconds)
 
 
-def reg_name(objname):
-    if iswin():
+def reg_name(settings, objname):
+    if settings.case_insensitive:
         return objname.lower()
     return objname