diff --git a/extensions/fablabchemnitz/upgrade_mightyscape.inx b/extensions/fablabchemnitz/upgrade_mightyscape.inx
new file mode 100644
index 00000000..c7629594
--- /dev/null
+++ b/extensions/fablabchemnitz/upgrade_mightyscape.inx
@@ -0,0 +1,15 @@
+
+
+ Upgrade MightyScape
+ fablabchemnitz.de.upgrade_mightyscape
+ false
+
+ all
+
+
+
+
+
+
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/upgrade_mightyscape.py b/extensions/fablabchemnitz/upgrade_mightyscape.py
new file mode 100644
index 00000000..541c98cd
--- /dev/null
+++ b/extensions/fablabchemnitz/upgrade_mightyscape.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python3
+
+"""
+Upgrade MightyScape from Inkscape Extension Dialog. Made for end users
+
+Extension for InkScape 1.X
+Author: Mario Voigt / FabLab Chemnitz
+Mail: mario.voigt@stadtfabrikanten.org
+Date: 14.05.2021
+Last patch: 14.05.2021
+License: GNU GPL v3
+"""
+
+import inkex
+import os
+from git import Repo
+
+class Upgrade(inkex.EffectExtension):
+
+ def add_arguments(self, pars):
+ pars.add_argument("--stash_untracked", type=inkex.Boolean, default=False, help="Stash untracked files and continue to upgrade")
+
+ def effect(self):
+ #get the directory of mightyscape
+ extension_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)), '../', '../') #go up to dir /home//.config/inkscape/extensions/mightyscape-1.X/
+
+ repo = Repo(os.path.join(extension_dir, ".git"))
+
+ #check if it is a non-empty git repository
+ if repo.bare is False:
+
+ if repo.is_dirty(untracked_files=True) is False:
+ if len(repo.untracked_files) > 0:
+ if self.options.stash_untracked is True:
+ repo.git.stash('save')
+ else:
+ inkex.utils.debug("There are some untracked files in your MightyScape directory. Still trying to pull recent files from git...")
+
+ origin = repo.remotes.origin
+ fetch_info = origin.fetch()
+
+ for info in fetch_info:
+ inkex.utils.debug("Updated %s to %s" % (info.ref, info.commit))
+
+ #finally pull new data
+ origin.pull()
+ else:
+ inkex.utils.debug("MightyScape is up to date!")
+ exit(0)
+
+ else:
+ inkex.utils.debug("No \".git\" directory found. Seems your MightyScape was not installed with git clone. Please see documentation on how to do that.")
+ exit(1)
+
+if __name__ == '__main__':
+ Upgrade().run()
\ No newline at end of file