diff --git a/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederationUtils.java b/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederationUtils.java
index 027c577..faae560 100644
--- a/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederationUtils.java
+++ b/src/main/java/org/apache/sysds/runtime/controlprogram/federated/FederationUtils.java
@@ -136,7 +136,7 @@
 	}
 
 	public static ScalarObject aggScalar(AggregateUnaryOperator aop, Future<FederatedResponse>[] ffr) {
-		if(!(aop.aggOp.increOp.fn instanceof KahanPlus || (aop.aggOp.increOp.fn instanceof Builtin &&
+		if(!(aop.aggOp.increOp.fn instanceof KahanFunction || (aop.aggOp.increOp.fn instanceof Builtin &&
 			(((Builtin) aop.aggOp.increOp.fn).getBuiltinCode() == BuiltinCode.MIN ||
 				((Builtin) aop.aggOp.increOp.fn).getBuiltinCode() == BuiltinCode.MAX)))) {
 			throw new DMLRuntimeException("Unsupported aggregation operator: "
diff --git a/src/test/java/org/apache/sysds/test/functions/federated/FederatedGLMTest.java b/src/test/java/org/apache/sysds/test/functions/federated/FederatedGLMTest.java
index fe24bc8..009d921 100644
--- a/src/test/java/org/apache/sysds/test/functions/federated/FederatedGLMTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/federated/FederatedGLMTest.java
@@ -99,7 +99,7 @@
 
 		TestConfiguration config = availableTestConfigurations.get(TEST_NAME);
 		loadTestConfiguration(config);
-		setOutputBuffering(false);
+		// setOutputBuffering(false);
 		
 		// Run reference dml script with normal matrix
 		fullDMLScriptName = HOME + TEST_NAME + "Reference.dml";
diff --git a/src/test/java/org/apache/sysds/test/functions/federated/FederatedLogRegTest.java b/src/test/java/org/apache/sysds/test/functions/federated/FederatedLogRegTest.java
index 5a52bb6..1c07bfc 100644
--- a/src/test/java/org/apache/sysds/test/functions/federated/FederatedLogRegTest.java
+++ b/src/test/java/org/apache/sysds/test/functions/federated/FederatedLogRegTest.java
@@ -40,7 +40,7 @@
 
 	private final static String TEST_DIR = "functions/federated/";
 	private final static String TEST_NAME = "FederatedLogRegTest";
-	private final static String TEST_CLASS_DIR = TEST_DIR + FederatedGLMTest.class.getSimpleName() + "/";
+	private final static String TEST_CLASS_DIR = TEST_DIR + FederatedLogRegTest.class.getSimpleName() + "/";
 
 	private final static int blocksize = 1024;
 	@Parameterized.Parameter()
@@ -108,7 +108,7 @@
 
 		// Run actual dml script with federated matrix
 		fullDMLScriptName = HOME + TEST_NAME + ".dml";
-		programArgs = new String[] {"-stats",
+		programArgs = new String[] {"-stats", "30",
 			"-nvargs", "in_X1=" + TestUtils.federatedAddress(port1, input("X1")),
 			"in_X2=" + TestUtils.federatedAddress(port2, input("X2")), "rows=" + rows, "cols=" + cols,
 			"in_Y=" + input("Y"), "out=" + output("Z")};
@@ -120,11 +120,9 @@
 		TestUtils.shutdownThreads(t1, t2);
 
 		// check for federated operations
-		Assert.assertTrue(heavyHittersContainsString("fed_ba+*"));
-		Assert.assertTrue(heavyHittersContainsString("fed_uark+","fed_uarsqk+"));
-		Assert.assertTrue(heavyHittersContainsString("fed_uack+"));
-		Assert.assertTrue(heavyHittersContainsString("fed_uak+"));
-		Assert.assertTrue(heavyHittersContainsString("fed_mmchain"));
+		Assert.assertTrue("contains federated matrix mult",heavyHittersContainsString("fed_ba+*"));
+		Assert.assertTrue("contains federated row unary aggregate",heavyHittersContainsString("fed_uark+","fed_uarsqk+"));
+		Assert.assertTrue("contains federated matrix mult chain or transpose",heavyHittersContainsString("fed_mmchain", "fed_r'"));
 		
 		//check that federated input files are still existing
 		Assert.assertTrue(HDFSTool.existsFileOnHDFS(input("X1")));
diff --git a/src/test/scripts/functions/federated/FederatedLogRegTest.dml b/src/test/scripts/functions/federated/FederatedLogRegTest.dml
index 063d630..a3d1f89 100644
--- a/src/test/scripts/functions/federated/FederatedLogRegTest.dml
+++ b/src/test/scripts/functions/federated/FederatedLogRegTest.dml
@@ -22,5 +22,5 @@
 X = federated(addresses=list($in_X1, $in_X2),
     ranges=list(list(0, 0), list($rows / 2, $cols), list($rows / 2, 0), list($rows, $cols)))
 Y = read($in_Y)
-model = multiLogReg(X=X,  Y=Y, tol=1e-5, maxi=30)
+model = multiLogReg(X=X,  Y=Y, tol=1e-5, maxi=30, icpt = 0)
 write(model, $out)
diff --git a/src/test/scripts/functions/federated/FederatedLogRegTestReference.dml b/src/test/scripts/functions/federated/FederatedLogRegTestReference.dml
index a1f75b5..5e9d132 100644
--- a/src/test/scripts/functions/federated/FederatedLogRegTestReference.dml
+++ b/src/test/scripts/functions/federated/FederatedLogRegTestReference.dml
@@ -21,5 +21,5 @@
 
 X = rbind(read($1), read($2))
 Y = read($3)
-model = multiLogReg(X=X,  Y=Y, tol=1e-5, maxi=30)
+model = multiLogReg(X=X,  Y=Y, tol=1e-5, maxi=30,  icpt = 0)
 write(model, $4)
