diff --git a/src/common/helpers.py b/src/common/helpers.py
index cd4d52aa7400158a7dcc98ab3dde8f086f5aac65..b7c01ae00746a88cbdd3e0577a719cf206dfb1b4 100644
--- a/src/common/helpers.py
+++ b/src/common/helpers.py
@@ -841,18 +841,19 @@ def get_os_info():
 	return 'N/A'
 
 def sanitize_filename(filename):
-	'''makes sure the filename we will write does contain only
-	acceptable and latin characters'''
+	'''makes sure the filename we will write does contain only acceptable and 
+	latin characters, and is not too long (in that case hash it)'''
+	# 48 is the limit
+	if len(filename) > 48:
+		hash = hash_md5(filename)
+		filename = base64.b64encode(hash.digest())
+
 	filename = punycode_encode(filename) # make it latin chars only
 	filename = filename.replace('/', '_')
 	if os.name == 'nt':
 		filename = filename.replace('?', '_').replace(':', '_')\
 			.replace('\\', '_').replace('"', "'").replace('|', '_')\
 			.replace('*', '_').replace('<', '_').replace('>', '_')
-		# 48 is the limit
-		if len(filename) > 48:
-			extension = filename.split('.')[-1]
-			filename = filename[0:48]
 	
 	return filename