diff --git a/installsystems/image.py b/installsystems/image.py
index ff9a9d44a692ee18017f4b33be455b7dcb8bac3a..b0db6143f6794b1a398eaea2737cbf172f9d8cc3 100644
--- a/installsystems/image.py
+++ b/installsystems/image.py
@@ -261,17 +261,17 @@ class SourceImage(Image):
         tarball.addfile(ti)
         # adding each file
         for fi in os.listdir(directory):
+            fp = os.path.join(directory, fi)
             # check name
             if not re.match("\d+-.*\.py$", fi):
                 debug("%s skipped: invalid name" % fi)
                 continue
             # adding file
-            ti = tarball.gettarinfo(os.path.join(directory, fi),
-                                    arcname=os.path.join(basedirectory, fi))
+            ti = tarball.gettarinfo(fp, arcname=os.path.join(basedirectory, fi))
             ti.mode = 0755
             ti.uid = ti.gid = 0
             ti.uname = ti.gname = "root"
-            tarball.addfile(ti)
+            tarball.addfile(ti, open(fp, "rb"))
             arrow("%s added" % fi)
         arrowlevel(-1)