diff --git a/src/xdgurl.py b/src/xdgurl.py
index 00ff787ae11f96d0cfb46eab83b5ee498e478349..c397706e51d9c52873dc721d294ae7373be3d8cb 100644
--- a/src/xdgurl.py
+++ b/src/xdgurl.py
@@ -404,6 +404,8 @@ def main():
                     tkinter.messagebox.showerror(program, info_text + '\n\n' + message + '\n' + str(e))
                 else:
                     tkMessageBox.showerror(program, info_text + '\n\n' + message + '\n' + str(e))
+
+                return str(e) # stderr and exit code 1
             else:
                 message = 'Download successfull'
                 if core.meta['command'] == 'install':
@@ -414,7 +416,7 @@ def main():
                     tkinter.messagebox.showinfo(program, message)
                 else:
                     tkMessageBox.showinfo(program, message)
-        sys.exit()
+    return 0
 
 if __name__ == '__main__':
-    main()
+    sys.exit(main())