diff --git a/hive/indexer/post_data_cache.py b/hive/indexer/post_data_cache.py
index 35c6ba1699821797da307e66840407edd1752555..83514c05a1d004dd2e5991eab3679b0b66e1cb4b 100644
--- a/hive/indexer/post_data_cache.py
+++ b/hive/indexer/post_data_cache.py
@@ -5,10 +5,12 @@ log = logging.getLogger(__name__)
 DB = Db.instance()
 
 def escape_characters(text):
-    characters = ["'", "_", "%"]
     ret = str(text)
-    for ch in characters:
-        ret = ret.replace(ch, "\\" + ch)
+    ret = ret.replace("\\", "\\\\")
+    ret = ret.replace("'", "''")
+    ret = ret.replace("%", '%%')
+    ret = ret.replace("_", "\\_")
+    ret = ret.replace(":", "\\:")
     return ret
 
 class PostDataCache(object):