Index: mbdyn/base/dataman3.cc
===================================================================
RCS file: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/base/dataman3.cc,v
retrieving revision 1.142
retrieving revision 1.143
diff -u -r1.142 -r1.143
--- mbdyn/base/dataman3.cc	3 Mar 2010 16:44:25 -0000	1.142
+++ mbdyn/base/dataman3.cc	17 Jul 2010 20:29:35 -0000	1.143
@@ -877,7 +877,7 @@
 			SAFENEWWITHCONSTRUCTOR(pOutputMeter,
 				MeterDriveCaller,
 				MeterDriveCaller(&DrvHdl, 
-					std::numeric_limits<double>::min(),
+					-std::numeric_limits<double>::max(),
 					std::numeric_limits<double>::max(), 
 					iFreq)
 				);
Index: mbdyn/base/drive.cc
===================================================================
RCS file: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/base/drive.cc,v
retrieving revision 1.36
retrieving revision 1.38
diff -u -r1.36 -r1.38
--- mbdyn/base/drive.cc	29 Mar 2010 18:31:13 -0000	1.36
+++ mbdyn/base/drive.cc	17 Jul 2010 20:29:35 -0000	1.38
@@ -196,7 +196,7 @@
 
 void
 DriveHandler::SetTime(const doublereal& dt, const doublereal& dts,
-	const integer& s, flag fNewStep)
+	const integer& s)
 {
 	/* Setta la variabile Time nella tabella dei simboli */
 	ASSERT(pTime != 0);
@@ -212,28 +212,29 @@
 	if (s >= 0) {
 		ASSERT(pStep != 0);
 		pStep->SetVal(s);
-	}
 
-	/* in case of new step */
-	if (fNewStep) {
-		iCurrStep++;
-
-		for (std::vector<MyMeter *>::iterator i = Meter.begin();
-			i != Meter.end(); i++)
-		{
-			(*i)->Set();
-		}
-
-		for (std::vector<MyRand *>::iterator i = Rand.begin();
-			i != Rand.end(); i++)
-		{
-			(*i)->Set();
-		}
-
-		for (std::vector<MyClosestNext*>::iterator i = ClosestNext.begin();
-			i != ClosestNext.end(); i++)
-		{
-			(*i)->Set();
+		/* in case of new step */
+		if (s != iCurrStep) {
+			ASSERT(iCurrStep + 1 == s);
+			iCurrStep = s;
+
+			for (std::vector<MyMeter *>::iterator i = Meter.begin();
+				i != Meter.end(); i++)
+			{
+				(*i)->Set();
+			}
+
+			for (std::vector<MyRand *>::iterator i = Rand.begin();
+				i != Rand.end(); i++)
+			{
+				(*i)->Set();
+			}
+
+			for (std::vector<MyClosestNext*>::iterator i = ClosestNext.begin();
+				i != ClosestNext.end(); i++)
+			{
+				(*i)->Set();
+			}
 		}
 	}
 }
Index: mbdyn/base/drive.h
===================================================================
RCS file: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/base/drive.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -r1.40 -r1.41
--- mbdyn/base/drive.h	29 Mar 2010 18:31:13 -0000	1.40
+++ mbdyn/base/drive.h	17 Jul 2010 20:29:35 -0000	1.41
@@ -232,8 +232,8 @@
 	std::vector<MyClosestNext *> ClosestNext;
 
 protected:
-	void SetTime(const doublereal& dt, const doublereal& dts = -1.,
-		const integer& s = -1, flag fNewStep = 1);
+	void SetTime(const doublereal& dt, const doublereal& dts,
+		const integer& s);
 	void LinkToSolution(const VectorHandler& XCurr,
 		const VectorHandler& XPrimeCurr);
 	integer iRandInit(integer iSteps);

