diff --git a/dal/hdf5/Dataset.i b/dal/hdf5/Dataset.i
index 78fd44ab1ae925fef67360aed4349e4d624c0017..9eb9b60a9b3b6013210492191bd7e25a681f1bd8 100644
--- a/dal/hdf5/Dataset.i
+++ b/dal/hdf5/Dataset.i
@@ -79,6 +79,7 @@ DATASETTYPE(std::complex<float>, NPY_CFLOAT, size_t);
 }
 
 namespace dal {
+  %template(DatasetComplexShort) Dataset< std::complex < int16_t > >;
   %template(DatasetShort)        Dataset<short>;
   %template(DatasetFloat)        Dataset<float>;
   %template(DatasetComplexFloat) Dataset< std::complex<float> >;
diff --git a/dal/lofar/TBB_File.cc b/dal/lofar/TBB_File.cc
index 1c38b7632e7acd49d9825fae27d91170342d7027..dc33778f8b05691ab771456caeac759e3a8b5313 100644
--- a/dal/lofar/TBB_File.cc
+++ b/dal/lofar/TBB_File.cc
@@ -749,12 +749,12 @@ Attribute<string> TBB_DipoleDataset::dispersionMeasureUnit()
 
 TBB_SubbandDataset::TBB_SubbandDataset( Group &parent, const std::string &name )
 :
-  Dataset<short>(parent, name)
+  Dataset< std::complex< int16_t > >(parent, name)
 {
 }
 
 void TBB_SubbandDataset::initNodes() {
-  Dataset<short>::initNodes();
+  Dataset< std::complex< int16_t > >::initNodes();
   addNode( new Attribute<unsigned>(*this, "TIME") );
   addNode( new Attribute<double>(*this, "CENTRAL_FREQUENCY") );
   addNode( new Attribute<string>(*this, "CENTRAL_FREQUENCY_UNIT") );
diff --git a/dal/lofar/TBB_File.h b/dal/lofar/TBB_File.h
index a60494db864eb4be02c09674a34dafd84feed97f..ab0f524461a0a5938bd88cbc4a5fbf594d2ac313 100644
--- a/dal/lofar/TBB_File.h
+++ b/dal/lofar/TBB_File.h
@@ -20,6 +20,7 @@
 #include <string>
 #include <vector>
 #include <complex>
+#include <stdint.h>
 #include <hdf5.h>
 #include "CLA_File.h"
 #include "Flagging.h"
@@ -274,7 +275,7 @@ protected:
   virtual void                          initNodes();
 };
 
-class TBB_SubbandDataset: public Dataset<short> {
+class TBB_SubbandDataset: public Dataset<std::complex < int16_t > > {
 public:
   TBB_SubbandDataset( Group &parent, const std::string &name );