diff --git a/GUI/View/Data/DatafilesSelector.cpp b/GUI/View/Data/DatafilesSelector.cpp
index 73412429d66899a12c475aaccc8bdbfac73a6f36..c725726b8b74f66f35ef90ddc002145f2b0c403a 100644
--- a/GUI/View/Data/DatafilesSelector.cpp
+++ b/GUI/View/Data/DatafilesSelector.cpp
@@ -16,6 +16,7 @@
 #include "Base/Util/Assert.h"
 #include "Device/Data/Datafield.h"
 #include "Device/IO/IOFactory.h"
+#include "Device/IO/ZipUtil.h"
 #include "GUI/Model/Data/DataItem.h"
 #include "GUI/Model/Device/DatafileItem.h"
 #include "GUI/Model/Files/DatafilesQModel.h"
@@ -338,11 +339,16 @@ void DatafilesSelector::importData2D()
     const IO::Filetype2D global_ftype = ::filterkey2type(filters2D, selectedFilter);
 
     for (const QString& fname : fnames) {
-        IO::Filetype2D ftype = global_ftype;
-        if (ftype == IO::unknown2D)
-            ftype = IO::filename2type2D(fname.toStdString());
-
         try {
+            if (IO::isPure1dFile(fname.toStdString()))
+                throw std::runtime_error("File \""
+                                         + ZipUtil::uncompressedExtension(fname.toStdString())
+                                         + "\" may contain only 1D data");
+
+            IO::Filetype2D ftype = global_ftype;
+            if (ftype == IO::unknown2D)
+                ftype = IO::filename2type2D(fname.toStdString());
+
             Datafield df = IO::readData2D(fname.toStdString(), ftype);
             if (df.rank() != 2)
                 throw std::runtime_error("File does not contain a 2d data set");