diff --git a/pub/src/rssm.cpp b/pub/src/rssm.cpp
index 56555cbb877ddda0916d1dcd7170cb3093ca58c0..196bb748ee74f1105d28e4bd6766175df2e33090 100644
--- a/pub/src/rssm.cpp
+++ b/pub/src/rssm.cpp
@@ -54,6 +54,7 @@ void CRawfileSpheres::RdRawYam( ifstream& F_in )
 
     YAML::Parser parser(F_in);
     YAML::Node doc;
+    const YAML::Node *arr;
     parser.GetNextDocument(doc);
 
     // read Meta:
@@ -120,28 +121,36 @@ void CRawfileSpheres::RdRawYam( ifstream& F_in )
         for ( uint iEne = 0; iEne<nEne; iEne++ ) {
             if ( doc["EnergyHistograms"][iEne].Type() !=
                  YAML::NodeType::Sequence )
-                throw "DATA BUG: EnergyHistogram " + strg(iEne) + 
-                    " is not a SEQUENCE"; 
+                throw "DATA BUG: EnergyHistogram[" + strg(iEne) + 
+                    "] is not a SEQUENCE"; 
             doc["EnergyHistograms"][iEne][0] >> val;
             if( !mystd::any2dbl( val, &num ) )
                 throw "E-Hist: invalid x-value " + val;
             for( int i=0; i<4; ++i )
                 rawdata[i].push_back( num );
-            for( int i=0; i<4; ++i ){
-                doc["EnergyHistograms"][iEne][i+1] >> val;// cnts line
-                if( !mystd::str2vec( val, &numvec ) )
-                    throw "DATA BUG: cnts line extraction failed";
-                if( numvec.size()!=ndet )
-                    throw "DATA BUG: hist: ndet incompatibility";
-                for( int ii=0; ii<numvec.size(); ++ii )
-                    rawdata[i].push_back( numvec[ii] );
+            for( int i=0; i<4; ++i ){ // counts
+                arr = &(doc["EnergyHistograms"][iEne][i+1]);
+                if( arr->Type() != YAML::NodeType::Sequence )
+                    throw "DATA BUG: EnergyHistogram[" + strg(iEne) + "][" +
+                        strg(i+1) + "] is not a SEQUENCE"; 
+                for( int j=0; j<ndet; ++j ) {
+                    *arr >> val;
+                    if( !mystd::any2dbl( val, &num ) )
+                        throw "E-Hist: invalid count " + val;
+                    rawdata[i].push_back( num );
+                }
             }
-            for( int i=0; i<4; ++i ){
-                doc["EnergyHistograms"][iEne][i+1+4] >> val;// time line
-                if( !mystd::str2vec( val, &numvec ) )
-                    throw "DATA BUG: time line extraction failed";
-                for( int ii=0; ii<numvec.size(); ++ii )
-                    rawdata[i].push_back( numvec[ii] );
+            for( int i=0; i<4; ++i ){ // tsteps
+                arr = &(doc["EnergyHistograms"][iEne][i+1+4]);
+                if( arr->Type() != YAML::NodeType::Sequence )
+                    throw "DATA BUG: EnergyHistogram[" + strg(iEne) + "][" +
+                        strg(i+1+4) + "] is not a SEQUENCE"; 
+                for( int j=0; j<ndet; ++j ) {
+                    *arr >> val;
+                    if( !mystd::any2dbl( val, &num ) )
+                        throw "E-Hist: invalid tstep " + val;
+                    rawdata[i].push_back( num );
+                }
             }
         }
     } catch( exception& e) {