diff --git a/1.0/HalPolicy.cpp b/1.0/HalPolicy.cpp
index 8c61700..a2c8252 100644
--- a/1.0/HalPolicy.cpp
+++ b/1.0/HalPolicy.cpp
@@ -9,6 +9,7 @@
 
 #include "FullyConnected.hpp"
 #include "OutputShapeUtils.hpp"
+#include "Utils.hpp"
 
 namespace armnn_driver
 {
@@ -397,7 +398,7 @@
     }
 
     armnn::TensorInfo outputInfo = GetTensorInfoForOperand(*outputOperand);
-    if (IsDynamicOutput(outputInfo))
+    if (IsDynamicTensor(outputInfo))
     {
         ALOGD("Output shape not set, will infer from input");
         outputInfo.SetShape(input.GetTensorInfo().GetShape());
@@ -477,7 +478,7 @@
     const armnn::TensorInfo& inputInfo = input.GetTensorInfo();
     armnn::TensorInfo outputInfo = GetTensorInfoForOperand(*output);
 
-    if (IsDynamicOutput(outputInfo))
+    if (IsDynamicTensor(outputInfo))
     {
         ALOGD("Output shape not set, will infer from inputs");
         outputInfo.SetShape(inputInfo.GetShape());
@@ -1004,7 +1005,7 @@
     const armnn::TensorInfo& inputInfo  = input.GetTensorInfo();
     armnn::TensorInfo outputInfo = GetTensorInfoForOperand(*output);
 
-    if (IsDynamicOutput(outputInfo))
+    if (IsDynamicTensor(outputInfo))
     {
         ALOGD("Output shape not set, will infer from inputs");
         outputInfo.SetShape(inputInfo.GetShape());
@@ -1147,7 +1148,7 @@
     }
 
     armnn::TensorInfo outputInfo = GetTensorInfoForOperand(*outputOperand);
-    if (IsDynamicOutput(outputInfo))
+    if (IsDynamicTensor(outputInfo))
     {
         ALOGD("Output shape not set, will infer from input");
         outputInfo.SetShape(input.GetTensorInfo().GetShape());
