diff --git a/CEP/DP3/DPPP/src/BaselineSelection.cc b/CEP/DP3/DPPP/src/BaselineSelection.cc
index 614a6c9d67e8302ba6f54737c84d71d2a2b59954..fd6fcb4d25bdf35b0ee71c9ef3bd50d6bc2d74ac 100644
--- a/CEP/DP3/DPPP/src/BaselineSelection.cc
+++ b/CEP/DP3/DPPP/src/BaselineSelection.cc
@@ -113,7 +113,25 @@ namespace LOFAR {
     {
       // Handle the value(s) in the baseline selection string.
       ParameterValue pvBL(itsStrBL);
-      if (pvBL.isVector()) {
+      // The value can be a vector or an MSSelection string.
+      // Alas the ParameterValue vector test cannot be used, because
+      // the first character of a MSSelection string can also be [.
+      // So if the first is [ and a ] is found before the end and before
+      // another [, it must be a MSSelection string.
+      bool mssel = true;
+      if (itsStrBL[0] == '[') {
+        String::size_type rb = itsStrBL.find (']');
+        ASSERTSTR (rb != string::npos,
+                   "Baseline selection " + itsStrBL +
+                   " has no ending ]");
+        if (rb == itsStrBL.size()-1) {
+          mssel = false;
+        } else {
+          String::size_type lb = itsStrBL.find ('[', 1);
+          mssel = (lb == string::npos  ||  lb > rb);
+        }
+      }
+      if (!mssel) {
         // Specified as a vector of antenna name patterns.
         selectBL = selectBL && handleBLVector (pvBL, info.antennaNames());
       } else {