diff --git a/MAC/APL/APLCommon/include/APL/APLCommon/Observation.h b/MAC/APL/APLCommon/include/APL/APLCommon/Observation.h
index ffe02edee8395707035f3a5816adb191a2e3d187..01beaead5dde7855bce200237c5f572f180d133f 100644
--- a/MAC/APL/APLCommon/include/APL/APLCommon/Observation.h
+++ b/MAC/APL/APLCommon/include/APL/APLCommon/Observation.h
@@ -62,6 +62,7 @@ public:
 	int16			nyquistZone;
 	vector<int16>	subbands;
 	vector<int16>	beamlets;
+	vector<string>	stations;
 	int32			sampleClock;
 	string			filter;
 	string			antennaArray;
diff --git a/MAC/APL/APLCommon/include/APL/APLCommon/StationInfo.h b/MAC/APL/APLCommon/include/APL/APLCommon/StationInfo.h
index 06c82f004839939c984ee8a24073468ebd62bbd3..e3fb5000af3629f3a078e8eb305159176f8fdc9a 100644
--- a/MAC/APL/APLCommon/include/APL/APLCommon/StationInfo.h
+++ b/MAC/APL/APLCommon/include/APL/APLCommon/StationInfo.h
@@ -52,12 +52,12 @@ namespace LOFAR {
 //		  ring = 1..9  [ 2 digits ]
 //		  CUType = C | W
 //
-uint16	stationRingNr();		// 0..99; 0 = error
-uint16	stationArmNr();			// 0..5	; 0 = error
-int16	stationTypeValue();		//-1..2 : for resp. error, CS, RS, ES
-string	stationTypeStr();		// "", CS, RS, ES
-string	PVSSDatabaseName();		// hostname w/o CUtype
-string	realHostname(const string&	someName);	// adds 'C' when it is missing.
+uint16	stationRingNr();									// 0..99; 0 = error
+uint16	stationArmNr();										// 0..5	; 0 = error
+int16	stationTypeValue();									//-1..2 : for resp. error, CS, RS, ES
+string	stationTypeStr();									// "", CS, RS, ES
+string	PVSSDatabaseName(const string&	someName = "");		// hostname w/o CUtype
+string	realHostname(const string&	someName);				// adds 'C' when it is missing.
 
 
 // @}
diff --git a/MAC/APL/APLCommon/src/Observation.cc b/MAC/APL/APLCommon/src/Observation.cc
index 4ba033e9abbe9be36393d6e27469d12271763171..fe722a474b1b6301908d9d60d96191e381c92c27 100644
--- a/MAC/APL/APLCommon/src/Observation.cc
+++ b/MAC/APL/APLCommon/src/Observation.cc
@@ -92,6 +92,14 @@ Observation::Observation(ParameterSet*		aParSet) :
 		beamlets = blParset.getInt16Vector("x");
 	}
 
+	if (aParSet->isDefined(prefix+"VirtualInstrument.stationList")) {
+		string stString("x=" + APLUtilities::expandedArrayString(
+											aParSet->getString(prefix+"VirtualInstrument.stationList")));
+		ParameterSet	stParset;
+		stParset.adoptBuffer(stString);
+		stations = stParset.getStringVector("x");
+	}
+
 	if (aParSet->isDefined(prefix+"bandFilter")) {
 		filter = aParSet->getString(prefix+"bandFilter");
 	}
diff --git a/MAC/APL/APLCommon/src/StationInfo.cc b/MAC/APL/APLCommon/src/StationInfo.cc
index 0466a112ddb51d8f588f1b66f42af790e92c6f6f..a1213d8ed4f97badeb495a208535fa4d7ffc7303 100644
--- a/MAC/APL/APLCommon/src/StationInfo.cc
+++ b/MAC/APL/APLCommon/src/StationInfo.cc
@@ -114,9 +114,12 @@ string	stationTypeStr()
 //
 // PVSSDatabaseName
 //
-string	PVSSDatabaseName()
+string	PVSSDatabaseName(const string&	someName)
 {
-	string hostname(myHostname(false));
+	string hostname(someName);
+	if (hostname.empty()) {
+		hostname = myHostname(false);
+	}
 
 	// hostname is like <stationtype><arm><ring><CUtype>
 	// where CUtype = C or W