diff --git a/LCS/ApplCommon/src/Observation.cc b/LCS/ApplCommon/src/Observation.cc
index 8b9ac244ef0264c7dae6bfa9b1c998800bdd1a0e..8faa0b066f4ae660ac60448b607a0f39f0ac0748 100644
--- a/LCS/ApplCommon/src/Observation.cc
+++ b/LCS/ApplCommon/src/Observation.cc
@@ -284,7 +284,7 @@ Observation::Observation(ParameterSet*		aParSet,
         // by default, use all psets
         std::vector<unsigned> phaseThreePsets;
         if (aParSet->isDefined(olapprefix+"CNProc.phaseThreePsets"))
-          phaseTwoPsets = aParSet->getUint32Vector(olapprefix+"CNProc.phaseThreePsets", true);
+          phaseThreePsets = aParSet->getUint32Vector(olapprefix+"CNProc.phaseThreePsets", true);
         if (phaseThreePsets.empty()) 
           for (unsigned p = 0; p < 64; p++)
             phaseThreePsets.push_back(p);
diff --git a/LCS/ApplCommon/test/tObservation.cc b/LCS/ApplCommon/test/tObservation.cc
index 7c6912b768e279e140179841bcec32c93785e875..2c57ec3bd4b8c297d591ef94b7f0ba4c7c9cf2b2 100644
--- a/LCS/ApplCommon/test/tObservation.cc
+++ b/LCS/ApplCommon/test/tObservation.cc
@@ -66,6 +66,16 @@ int main (int argc, char* argv[])
 		Observation  obs2(&parSet1);
 		cout << obs2 << endl;
 
+                // test storage node assignment
+                parSet1.add("ObsSW.OLAP.CNProc.phaseOnePsets", "[]");
+                parSet1.add("ObsSW.OLAP.CNProc.phaseTwoPsets", "[]");
+                parSet1.add("ObsSW.OLAP.CNProc.phaseThreePsets", "[]");
+                parSet1.add("ObsSW.Observation.DataProducts.Output_CoherentStokes.enabled", "true");
+                parSet1.add("ObsSW.Observation.DataProducts.Output_CoherentStokes.filenames", "[beam0.h5,beam1.h5]");
+                parSet1.add("ObsSW.Observation.DataProducts.Output_CoherentStokes.locations", "[/,/]");
+                Observation obs4(&parSet1);
+		ASSERTSTR(obs4.streamsToStorage.size() == 2, "Each file should have its own stream to storage");
+
 		cout << ">>>" << endl;
 		// test conflicts in clock
 		ParameterSet conflictPS1("tObservation.in_conflict1");