diff --git a/scripts/upload_manifest.py b/scripts/upload_manifest.py
index d5e817d21105b581d721615e73efd9ac1603b5ff..6cebc9f571fef3b5e9d04233ba3230ec379929f3 100755
--- a/scripts/upload_manifest.py
+++ b/scripts/upload_manifest.py
@@ -90,9 +90,22 @@ def upload(osv, manifest, depends):
                 + cpio_field(0, 8)                # check
                 + filename + '\0')
 
+    def strip_file(filename):
+        stripped_filename = filename
+        if(filename.endswith(".so") and \
+            (filename[0] != "/" or filename.startswith(os.getcwd()))):
+            stripped_filename = filename[:-3] + "-stripped.so"
+            if(not os.path.exists(stripped_filename) \
+                    or (os.path.getmtime(stripped_filename) < \
+                        os.path.getmtime(filename))):
+                subprocess.call(["strip", "-o", stripped_filename, filename])
+        return stripped_filename
+
+
     # Send the files to the guest
     for name, hostname in files:
         depends.write('\t%s \\\n' % (hostname,))
+        hostname = strip_file(hostname)
         cpio_send(cpio_header(name, os.stat(hostname).st_size))
         with open(hostname, 'r') as f:
             cpio_send(f.read())