diff --git a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/AbstractServiTest.java b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/AbstractServiTest.java
index 82a85b4..999dd3f 100644
--- a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/AbstractServiTest.java
+++ b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/AbstractServiTest.java
@@ -136,7 +136,9 @@
 		try {
 			for (final RServi servi : this.servis) {
 				try {
-					servi.close();
+					if (!servi.isClosed()) {
+						servi.close();
+					}
 				}
 				catch (final Throwable e) {
 					exceptions.add(e);
diff --git a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/JMPoolTest.java b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/JMPoolTest.java
index 6d09d25..bd83e3e 100644
--- a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/JMPoolTest.java
+++ b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/JMPoolTest.java
@@ -245,8 +245,10 @@
 		final long t2= System.nanoTime();
 		final RServi servi2= getServi("test2");
 		assertNotNull(servi2);
-		{	final long waitTime= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t2);
-			assertTrue(waitTime < poolConfig.getMaxWaitTime() + NODE_STARTUP_MILLIS);
+		{	final long d2= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t2);
+			final long dMax= poolConfig.getMaxWaitTime() + NODE_STARTUP_MILLIS;
+			assertTrue(d2 < dMax,
+					() -> String.format("duration expected: < %1$sms, actual: %2$sms", dMax, d2) );
 		}
 		
 		final long t3= System.nanoTime();
@@ -256,10 +258,11 @@
 			throw new AssertionError("totalCount");
 		}
 		catch (final NoSuchElementException e) {
-			final long waitTime= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t3);
-			assertTrue(waitTime > poolConfig.getMaxWaitTime() - 500);
-			assertTrue(waitTime < poolConfig.getMaxWaitTime() + 500);
-			return;
+			final long d3= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t3);
+			final long dExpected= poolConfig.getMaxWaitTime();
+			final long dTol= 500;
+			assertTrue(d3 > poolConfig.getMaxWaitTime() - dTol && d3 < poolConfig.getMaxWaitTime() + dTol,
+					() -> String.format("duration expected: %1$sms (±%3$sms), actual: %2$sms", dExpected, d3, dTol));
 		}
 	}
 	
diff --git a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/LocalNodeTest.java b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/LocalNodeTest.java
index eb4a2b8..9f55989 100644
--- a/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/LocalNodeTest.java
+++ b/servi/org.eclipse.statet.rj.servi-tests/src/org/eclipse/statet/rj/servi/pool/LocalNodeTest.java
@@ -39,6 +39,7 @@
 import org.eclipse.statet.rj.data.RDataUtils;
 import org.eclipse.statet.rj.data.UnexpectedRDataException;
 import org.eclipse.statet.rj.servi.RServi;
+import org.eclipse.statet.rj.servi.node.RServiNodeConfig;
 
 
 @EnabledIfEnvironmentVariable(named= "STATET_TEST_FILES", matches= ".+")
@@ -190,8 +191,10 @@
 		
 		final long t1= System.nanoTime();
 		this.localR.stop();
-		final long waitTime= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t1);
-		assertTrue(waitTime < 11500);
+		final long d1= TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - t1);
+		final long dMax= new RServiNodeConfig().getStartStopTimeout() + 1500;
+		assertTrue(d1 < new RServiNodeConfig().getStartStopTimeout() + 1500,
+				() -> String.format("duration expected: < %1$sms, actual: %2$sms", dMax, d1) );
 	}
 	
 }
