diff --git a/CMakeLists.txt b/CMakeLists.txt
index d52098a96..c0374f1e0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -573,6 +573,7 @@ if(NOT NO_TESTS)
TEST(TestParse testparse.cpp)
TEST(TestGitStorage testgitstorage.cpp)
TEST(TestPlan testplan.cpp)
+ TEST(TestDiveSiteDuplication testdivesiteduplication.cpp)
endif()
# install a few things so that one can run Subsurface from the build
diff --git a/dives/TwoTimesTwo.ssrf b/dives/TwoTimesTwo.ssrf
new file mode 100644
index 000000000..6385f37dd
--- /dev/null
+++ b/dives/TwoTimesTwo.ssrf
@@ -0,0 +1,32 @@
+
+
+
+ Blue Corner
+ First dive with this location
+
+
+
+
+
+ Blue Corner, Palau
+ Second dive with this location
+
+
+
+
+
+ Blue Corner
+ First dive with this location
+
+
+
+
+
+ Blue Corner, Palau
+ Second dive with this location
+
+
+
+
+
+
diff --git a/tests/testdivesiteduplication.cpp b/tests/testdivesiteduplication.cpp
new file mode 100644
index 000000000..fc8ba0a1e
--- /dev/null
+++ b/tests/testdivesiteduplication.cpp
@@ -0,0 +1,11 @@
+#include "testdivesiteduplication.h"
+#include "dive.h"
+#include "divesite.h"
+
+void TestDiveSiteDuplication::testReadV2()
+{
+ QCOMPARE(parse_file(SUBSURFACE_SOURCE "/dives/TwoTimesTwo.ssrf"), 0);
+ QCOMPARE(dive_site_table.nr, 2);
+}
+
+QTEST_MAIN(TestDiveSiteDuplication)
diff --git a/tests/testdivesiteduplication.h b/tests/testdivesiteduplication.h
new file mode 100644
index 000000000..5fb625568
--- /dev/null
+++ b/tests/testdivesiteduplication.h
@@ -0,0 +1,13 @@
+#ifndef TESTDIVESITEDUPLICATION_H
+#define TESTDIVESITEDUPLICATION_H
+
+#include
+
+class TestDiveSiteDuplication : public QObject
+{
+ Q_OBJECT
+private slots:
+ void testReadV2();
+};
+
+#endif // TESTDIVESITEDUPLICATION_H