diff --git a/src/binwalk/core/magic.py b/src/binwalk/core/magic.py
index a04044a..67bdd55 100644
--- a/src/binwalk/core/magic.py
+++ b/src/binwalk/core/magic.py
@@ -790,6 +790,8 @@ class Magic(object):
 
         Returns None.
         '''
+        # Open file as UTF-8 to prevent decoding issues for non-ASCII bytes
+        # that may inadvertantly be in the signature file.
         fp = codecs.open(fname, "r", encoding='utf-8')
         lines = fp.readlines()
         self.parse(lines)
@@ -806,6 +808,8 @@ class Magic(object):
         signature = None
 
         for line in lines:
+            # The signature lines were read in as UTF-8 unicode; be sure to treat them as strings.
+            line = str(line)
             # Split at the first comment delimiter (if any) and strip the result
             line = line.split('#')[0].strip()
             # Ignore blank lines and lines that are nothing but comments.