diff --git a/dports/gis/qlandkartegt-garmindev/Portfile b/dports/gis/qlandkartegt-garmindev/Portfile
index 02ffda3..b0c5b41 100644
--- a/dports/gis/qlandkartegt-garmindev/Portfile
+++ b/dports/gis/qlandkartegt-garmindev/Portfile
@@ -34,5 +34,5 @@ destroot {
     }
 }
 
-livecheck.url    "http://sourceforge.net/api/file/index/project-id/212192/mtime/desc/rss"
+livecheck.name   qlandkartegt
 livecheck.regex  garmindev-(\[0-9.\]+)${extract.suffix}
diff --git a/dports/gis/qlandkartegt/Portfile b/dports/gis/qlandkartegt/Portfile
index c4deba9..a73d386 100644
--- a/dports/gis/qlandkartegt/Portfile
+++ b/dports/gis/qlandkartegt/Portfile
@@ -5,7 +5,7 @@ PortSystem       1.0
 PortGroup        cmake 1.0
 
 name             qlandkartegt
-version          1.7.6
+version          1.7.7
 categories       gis
 platforms        darwin
 maintainers      puffin.lb.shuttle.de:michael.klein
@@ -18,10 +18,10 @@ long_description QLandkarte GT is the ultimate outdoor aficionado's tool. It \
                  QLandkarte M, a moving map application for mobile devices.
 
 homepage         http://www.qlandkarte.org/
-master_sites     sourceforge:project/qlandkartegt/qlandkartegt/QLandkarte%20GT%20${version}
+master_sites     sourceforge:project/qlandkartegt/qlandkartegt/QLandkarteGT%20${version}
 
-checksums        rmd160  3eda6f83ac1ed89a8b65c850150ca72d29976ffa \
-                 sha256  ff1e352d07fd136e75a80035d888efe095f1f44ca15d46262169e98e5a14e1c3
+checksums        rmd160  b26a7124766dcbba8ced253e59460b2192cc19fd \
+                 sha256  0b0d659bef580bff7c6aabd563ad9bf0cf2d32467fe11e613ceaab58be7363d0
 
 depends_lib      port:libexif \
                  port:gdal \
@@ -31,10 +31,17 @@ depends_lib      port:libexif \
                  port:libdmtx \
                  bin:gpsbabel:gpsbabel
 
+patchfiles       patch-src-main.cpp.diff \
+                 patch-remove-legacy-Dictionary.h.diff
+
+post-patch {
+    # needed by QDeviceWatcher
+    reinplace "s|CoreFoundation|CoreFoundation -framework DiskArbitration|" ${worksrcpath}/src/CMakeLists.txt
+}
+
 destroot {
     xinstall -d ${destroot}${applications_dir}
     copy "${worksrcpath}/bin/QLandkarte GT.app" ${destroot}${applications_dir}
 }
 
-livecheck.url    "http://sourceforge.net/api/file/index/project-id/212192/mtime/desc/rss"
 livecheck.regex  ${name}-(\[0-9.\]+)${extract.suffix}
diff --git a/dports/gis/qlandkartegt/files/patch-remove-legacy-Dictionary.h.diff b/dports/gis/qlandkartegt/files/patch-remove-legacy-Dictionary.h.diff
new file mode 100644
index 0000000..7c3486d
--- /dev/null
+++ b/dports/gis/qlandkartegt/files/patch-remove-legacy-Dictionary.h.diff
@@ -0,0 +1,94 @@
+--- src/CGpx.cpp.orig	2014-04-02 19:23:46.000000000 +0200
++++ src/CGpx.cpp	2014-07-19 14:43:03.000000000 +0200
+@@ -67,7 +67,7 @@
+     for (int i=0;;++i)
+     {
+         QColor trackColor = CTrack::lineColors[i];
+-        QString colorName = colorMap.left(trackColor);
++        QString colorName = colorMap.key(trackColor);
+         if (!colorName.isEmpty()) trackColorMap.insert(colorName, i);
+         if (trackColor == Qt::transparent) break;
+     }
+@@ -80,13 +80,13 @@
+ }
+ 
+ 
+-const Dictionary<QString, QColor>& CGpx::getColorMap() const
++const QMap<QString, QColor>& CGpx::getColorMap() const
+ {
+     return colorMap;
+ }
+ 
+ 
+-const Dictionary<QString, int>& CGpx::getTrackColorMap() const
++const QMap<QString, int>& CGpx::getTrackColorMap() const
+ {
+     return trackColorMap;
+ }
+--- src/CGpx.h.orig	2014-04-02 19:23:47.000000000 +0200
++++ src/CGpx.h	2014-07-19 11:39:24.000000000 +0200
+@@ -24,8 +24,6 @@
+ #include <QString>
+ #include <QtXml/QDomDocument>
+ 
+-#include "Dictionary.h"
+-
+ /// handle geo data from GPX files
+ class CGpx : public QObject, public QDomDocument
+ {
+@@ -68,10 +66,11 @@
+         void save(const QString& filename);
+         void makeExtensions();
+ 
+-        static QMap<QString,QDomElement> mapChildElements(const QDomNode& parent);
++        static QMap<QString,QDomElement> mapChildElements(const QDomNode&
++                                                          parent);
+ 
+-        const Dictionary<QString, QColor>& getColorMap() const;
+-        const Dictionary<QString, int>& getTrackColorMap() const;
++        const QMap<QString, QColor>& getColorMap() const;
++        const QMap<QString, int>& getTrackColorMap() const;
+ 
+         QDomElement &getExtensions() { return extensions; }
+         gpx_version version() { return file_version; }
+@@ -80,8 +79,8 @@
+     protected:
+         void writeMetadata();
+ 
+-        Dictionary<QString, QColor> colorMap;
+-        Dictionary<QString, int> trackColorMap;
++        QMap<QString, QColor> colorMap;
++        QMap<QString, int> trackColorMap;
+ 
+     private:
+         QDomElement extensions;
+--- src/CMakeLists.txt.orig	2014-05-18 15:36:36.000000000 +0200
++++ src/CMakeLists.txt	2014-07-21 21:45:56.000000000 +0200
+@@ -463,7 +463,6 @@
+     CImageViewer.h
+     CMapRmp.h
+     CMapDEMSlopeSetup.h
+-    Dictionary.h
+     QFileExt.h
+     IExchange.h
+     CExchangeGarmin.h
+--- src/CTrackDB.cpp.orig	2014-04-02 19:23:46.000000000 +0200
++++ src/CTrackDB.cpp	2014-07-19 14:49:25.000000000 +0200
+@@ -233,7 +233,7 @@
+                 tmpelem = trackextensionmap.value(CGpx::gpxx_ns + ":" + "DisplayColor");
+                 if (!tmpelem.isNull())
+                 {
+-                    int colorID = gpx.getTrackColorMap().right(tmpelem.text(), -1);
++                    int colorID = gpx.getTrackColorMap().value(tmpelem.text(), -1);
+                     if (colorID >= 0) track->setColor(colorID);
+                 }
+             }
+@@ -488,7 +488,7 @@
+         QDomElement color = gpx.createElement("gpxx:DisplayColor");
+         gpxx_ext.appendChild(color);
+ 
+-        QString colname = gpx.getTrackColorMap().left(track->getColorIdx());
++        QString colname = gpx.getTrackColorMap().key(track->getColorIdx());
+         QDomText _color_ = gpx.createTextNode(colname);
+         color.appendChild(_color_);
+ 
diff --git a/dports/gis/qlandkartegt/files/patch-src-main.cpp.diff b/dports/gis/qlandkartegt/files/patch-src-main.cpp.diff
new file mode 100644
index 0000000..9e97d50
--- /dev/null
+++ b/dports/gis/qlandkartegt/files/patch-src-main.cpp.diff
@@ -0,0 +1,19 @@
+--- src/main.cpp.orig	2014-04-02 19:23:47.000000000 +0200
++++ src/main.cpp	2014-07-10 20:17:08.000000000 +0200
+@@ -284,15 +284,11 @@
+     GDALAllRegister();
+ 
+ #ifdef Q_OS_MAC
+-    QCoreApplication::setApplicationName("QLandkarte GT");
+     QCoreApplication::setApplicationVersion(VER_STR);
+-    QCoreApplication::setOrganizationName("org.qlandkarte");
+-    QCoreApplication::setOrganizationDomain("org.qlandkarte");
+-#else
++#endif
+     QCoreApplication::setApplicationName("QLandkarteGT");
+     QCoreApplication::setOrganizationName("QLandkarteGT");
+     QCoreApplication::setOrganizationDomain("qlandkarte.org");
+-#endif
+     QApplication::setWindowIcon(QIcon(":/icons/qlandkartegt.png"));
+ 
+ #ifdef WIN32
