diff --git a/hyracks/hyracks-dataflow-hadoop/src/main/java/edu/uci/ics/hyracks/dataflow/hadoop/HadoopMapperOperatorDescriptor.java b/hyracks/hyracks-dataflow-hadoop/src/main/java/edu/uci/ics/hyracks/dataflow/hadoop/HadoopMapperOperatorDescriptor.java
index 7efceef..a216ac9 100644
--- a/hyracks/hyracks-dataflow-hadoop/src/main/java/edu/uci/ics/hyracks/dataflow/hadoop/HadoopMapperOperatorDescriptor.java
+++ b/hyracks/hyracks-dataflow-hadoop/src/main/java/edu/uci/ics/hyracks/dataflow/hadoop/HadoopMapperOperatorDescriptor.java
@@ -76,11 +76,11 @@
             } catch (Exception e) {
                 throw new HyracksDataException(e);
             }
+            conf = new JobConf(jobConf);
+            conf.setClassLoader(jobConf.getClassLoader());
             if (!jobConf.getUseNewMapper()) {
                 ((org.apache.hadoop.mapred.Mapper) mapper).configure(conf);
             }
-            conf = new JobConf(jobConf);
-            conf.setClassLoader(jobConf.getClassLoader());
             reporter = createReporter();
         }
 
@@ -315,7 +315,7 @@
     private Object createMapper() throws Exception {
         Object mapper;
         if (mapperClass != null) {
-            return mapperClass.newInstance();
+            return ReflectionUtils.newInstance(mapperClass, jobConf);
         } else {
             String mapperClassName = null;
             if (jobConf.getUseNewMapper()) {
diff --git a/hyracks/hyracks-dataflow-hadoop/src/main/java/edu/uci/ics/hyracks/dataflow/hadoop/HadoopReducerOperatorDescriptor.java b/hyracks/hyracks-dataflow-hadoop/src/main/java/edu/uci/ics/hyracks/dataflow/hadoop/HadoopReducerOperatorDescriptor.java
index f208669..b27cb40 100644
--- a/hyracks/hyracks-dataflow-hadoop/src/main/java/edu/uci/ics/hyracks/dataflow/hadoop/HadoopReducerOperatorDescriptor.java
+++ b/hyracks/hyracks-dataflow-hadoop/src/main/java/edu/uci/ics/hyracks/dataflow/hadoop/HadoopReducerOperatorDescriptor.java
@@ -33,6 +33,7 @@
 import org.apache.hadoop.mapreduce.StatusReporter;
 import org.apache.hadoop.mapreduce.TaskAttemptID;
 import org.apache.hadoop.util.Progress;
+import org.apache.hadoop.util.ReflectionUtils;
 
 import edu.uci.ics.hyracks.api.context.IHyracksContext;
 import edu.uci.ics.hyracks.api.dataflow.IDataReader;
@@ -318,7 +319,7 @@
 
     private Object createReducer() throws Exception {
         if (reducerClass != null) {
-            return reducerClass.newInstance();
+            return ReflectionUtils.newInstance(reducerClass, jobConf);
         } else {
             Object reducer;
             if(jobConf.getUseNewReducer()){
