diff --git a/src/View/Geometry/Window.py b/src/View/Geometry/Window.py
index 38db6db9ee5c1509ae36fca6809e094fc93c2e61..99fe2c37e88ad636e2523e213fbbd1db4a89588c 100644
--- a/src/View/Geometry/Window.py
+++ b/src/View/Geometry/Window.py
@@ -167,7 +167,7 @@ class GeometryWindow(PamhyrWindow):
     def setup_connections(self):
         actions = {
             "action_import": self.import_from_file,
-            # "action_export": self.export_to_file,
+            "action_export": self.export_to_file,
             "action_sort_asc": self.sort_ascending,
             "action_sort_des": self.sort_descending,
             "action_up": self.move_up,
@@ -535,21 +535,67 @@ class GeometryWindow(PamhyrWindow):
         self.update_plot_kpc()
 
     def export_to_file(self):
+        settings = QSettings(
+            QSettings.IniFormat,
+            QSettings.UserScope, 'MyOrg'
+        )
+
+        if self._study.filename != "" or self._study.filename != None:
+            default_directory = os.path.basename(self._study.filename)
+            current_dir = settings.value(
+                'current_directory',
+                default_directory,
+                type=str
+            )
+
         options = QFileDialog.Options()
-        DEFAULT_DIRECTORY = '/home/'
-        settings = QSettings(QSettings.IniFormat,
-                             QSettings.UserScope, 'MyOrg', )
-        current_dir = settings.value(
-            'current_directory', DEFAULT_DIRECTORY, type=str)
         options |= QFileDialog.DontUseNativeDialog
 
         filename, filters = QFileDialog.getSaveFileName(
             self,
-            filter=self._trad["file_st"] + ";; " + self._trad["file_all"],
+            filter=(
+                self._trad["file_st"] + ";; " +
+                self._trad["file_all"]
+            ),
             options=options
         )
 
-        current_dir = os.path.split(filename)[0] or DEFAULT_DIRECTORY
-
         if filename != '':
-            self._table.export_reach(filename)
+            self._export_to_file_st(filename)
+
+    def _export_to_file_st(self, filename):
+        with open(filename, "w+") as f:
+            f.write("* Exported from Pamhyr2\n")
+            self._export_to_file_st_reach(f, self._reach)
+
+    def _export_to_file_st_reach(self, wfile, reach):
+        pid = 0
+        for profile in reach.profiles:
+            self._export_to_file_st_profile(wfile, profile, pid)
+            pid += 1
+
+    def _export_to_file_st_profile(self, wfile, profile, pid):
+            num = f"{pid:>6}"
+            c1 = f"{profile.code1:>6}"
+            c2 = f"{profile.code2:>6}"
+            t = f"{len(profile.points):>6}"
+            kp = f"{profile.kp:>12f}"[0:12]
+            pname = profile.name
+            if profile.name == "":
+                pname = f"p{profile.id:>3}".replace(" ", "0")
+                name = f"{pname:<19}"
+
+            wfile.write(f"{num}{c1}{c2}{t} {kp} {pname}\n")
+
+            for point in profile.points:
+                self._export_to_file_st_point(wfile, point)
+
+            wfile.write(f"     999.9990     999.9990     999.9990\n")
+
+    def _export_to_file_st_point(self, wfile, point):
+        x = f"{point.x:<12.4f}"[0:12]
+        y = f"{point.y:<12.4f}"[0:12]
+        z = f"{point.z:<12.4f}"[0:12]
+        n = f"{point.name:<3}"
+
+        wfile.write(f"{x} {y} {z} {n}\n")