diff --git a/bindings/python/ADIOSPy.cpp b/bindings/python/ADIOSPy.cpp
index 96c8033a80176655e44130dc7dd5c956671b6163..7f196f40a1d4806fd28bcad89c3b1fa7041b7a4f 100644
--- a/bindings/python/ADIOSPy.cpp
+++ b/bindings/python/ADIOSPy.cpp
@@ -19,7 +19,8 @@ namespace adios2
 
 ADIOSPy::ADIOSPy(const std::string configFile, MPI_Comm mpiComm,
                  const bool debugMode)
-: m_DebugMode(debugMode), m_ADIOS(configFile, mpiComm, debugMode)
+: m_DebugMode(debugMode),
+  m_ADIOS(std::make_shared<adios2::ADIOS>(configFile, mpiComm, debugMode))
 {
 }
 
@@ -29,7 +30,7 @@ ADIOSPy::ADIOSPy(MPI_Comm mpiComm, const bool debugMode)
 }
 
 ADIOSPy::ADIOSPy(const std::string configFile, const bool debugMode)
-: ADIOSPy("", MPI_COMM_SELF, debugMode)
+: ADIOSPy(configFile, MPI_COMM_SELF, debugMode)
 {
 }
 
@@ -39,7 +40,7 @@ ADIOSPy::ADIOSPy(const bool debugMode) : ADIOSPy("", MPI_COMM_SELF, debugMode)
 
 IOPy ADIOSPy::DeclareIO(const std::string name)
 {
-    return IOPy(m_ADIOS.DeclareIO(name), m_DebugMode);
+    return IOPy(m_ADIOS->DeclareIO(name), m_DebugMode);
 }
 
 } // end namespace adios
diff --git a/bindings/python/ADIOSPy.h b/bindings/python/ADIOSPy.h
index 64cd3fbbe0c2ef6b1f1e6d6a27ecf7e92f66a7d4..d3c9f5e85ddf7fbad16e24f326a46baba5e50640 100644
--- a/bindings/python/ADIOSPy.h
+++ b/bindings/python/ADIOSPy.h
@@ -12,6 +12,7 @@
 #define ADIOS2_BINDINGS_PYTHON_SOURCE_ADIOSPY_H_
 
 /// \cond EXCLUDE_FROM_DOXYGEN
+#include <memory> //std::shared_ptr
 #include <string>
 /// \endcond
 
@@ -32,13 +33,14 @@ public:
     ADIOSPy(MPI_Comm mpiComm, const bool debugMode);
     ADIOSPy(const std::string configFile, const bool debugMode);
     ADIOSPy(const bool debugMode);
+
     ~ADIOSPy() = default;
 
     IOPy DeclareIO(const std::string name);
 
 private:
     const bool m_DebugMode;
-    adios2::ADIOS m_ADIOS;
+    std::shared_ptr<adios2::ADIOS> m_ADIOS;
 };
 
 } // end namespace adios
diff --git a/bindings/python/gluePyBind11.cpp b/bindings/python/gluePyBind11.cpp
index 86eab2cb14aad75939642f69d9147b7e377bb8b5..85f5ec219461a07de5c4a89ce690b5f426f100dd 100644
--- a/bindings/python/gluePyBind11.cpp
+++ b/bindings/python/gluePyBind11.cpp
@@ -68,7 +68,7 @@ adios2::ADIOSPy ADIOSPyInit(adios2::pyObject &object, const bool debugMode)
 adios2::ADIOSPy ADIOSPyInitConfig(const std::string configFile,
                                   const bool debugMode)
 {
-    return adios2::ADIOSPy(debugMode);
+    return adios2::ADIOSPy(configFile, debugMode);
 }
 
 adios2::ADIOSPy ADIOSPyInit(const bool debugMode)
diff --git a/testing/adios2/bindings/python/CMakeLists.txt b/testing/adios2/bindings/python/CMakeLists.txt
index 8da6af4e7613e9b777cfb092d9c805fa583282f5..96e47759aefee773095c388e50b3db42e08ac9b9 100644
--- a/testing/adios2/bindings/python/CMakeLists.txt
+++ b/testing/adios2/bindings/python/CMakeLists.txt
@@ -3,4 +3,10 @@
 # accompanying file Copyright.txt for details.
 #------------------------------------------------------------------------------#
 
-python_add_test(PythonBPWrite TestBPWriteTypes.py)
+if(NOT ADIOS2_HAVE_MPI)
+    python_add_test(PythonBPWrite TestBPWriteTypes_nompi.py)
+endif()
+
+if(ADIOS2_HAVE_MPI)
+    python_add_test(PythonBPWrite TestBPWriteTypes.py)
+endif()
\ No newline at end of file
diff --git a/testing/adios2/bindings/python/TestBPWriteTypes.py b/testing/adios2/bindings/python/TestBPWriteTypes.py
index 842adacd8cf1e9b87c53a66725ab50d7b3269aef..36cfe7243abae03f2aa12acf9556fec0c345d594 100644
--- a/testing/adios2/bindings/python/TestBPWriteTypes.py
+++ b/testing/adios2/bindings/python/TestBPWriteTypes.py
@@ -10,13 +10,15 @@
 
 
 from adios2NPTypes import SmallTestData
+from mpi4py import MPI
 import adios2
 
 
 # Test data
 data = SmallTestData()
 
-adios = adios2.ADIOS(adios2.DebugON)
+comm = MPI.COMM_WORLD
+adios = adios2.ADIOS(comm, adios2.DebugON)
 
 bpIO = adios.DeclareIO("NPTypes")
 
diff --git a/testing/adios2/bindings/python/TestBPWriteTypes_nompi.py b/testing/adios2/bindings/python/TestBPWriteTypes_nompi.py
new file mode 100644
index 0000000000000000000000000000000000000000..842adacd8cf1e9b87c53a66725ab50d7b3269aef
--- /dev/null
+++ b/testing/adios2/bindings/python/TestBPWriteTypes_nompi.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python
+
+#
+# Distributed under the OSI-approved Apache License, Version 2.0.  See
+# accompanying file Copyright.txt for details.
+#
+# TestBPWriteTypes.py: test Python numpy types in ADIOS2 File Write
+#  Created on: Feb 2, 2017
+#      Author: William F Godoy godoywf@ornl.gov
+
+
+from adios2NPTypes import SmallTestData
+import adios2
+
+
+# Test data
+data = SmallTestData()
+
+adios = adios2.ADIOS(adios2.DebugON)
+
+bpIO = adios.DeclareIO("NPTypes")
+
+# ADIOS Variable name, shape, start, offset, constant dims
+# All local variables
+varI8 = bpIO.DefineVariable(
+    "varI8", [], [], [data.I8.size], adios2.ConstantDims)
+varI16 = bpIO.DefineVariable(
+    "varI16", [], [], [data.I16.size], adios2.ConstantDims)
+varI32 = bpIO.DefineVariable(
+    "varI32", [], [], [data.I32.size], adios2.ConstantDims)
+varI64 = bpIO.DefineVariable(
+    "varI64", [], [], [data.I64.size], adios2.ConstantDims)
+
+varU8 = bpIO.DefineVariable(
+    "varUI8", [], [], [data.U8.size], adios2.ConstantDims)
+varU16 = bpIO.DefineVariable(
+    "varUI16", [], [], [data.U16.size], adios2.ConstantDims)
+varU32 = bpIO.DefineVariable(
+    "varUI32", [], [], [data.U32.size], adios2.ConstantDims)
+varU64 = bpIO.DefineVariable(
+    "varUI64", [], [], [data.U64.size], adios2.ConstantDims)
+
+varR32 = bpIO.DefineVariable(
+    "varR32", [], [], [data.R32.size], adios2.ConstantDims)
+
+varR64 = bpIO.DefineVariable(
+    "varR64", [], [], [data.R64.size], adios2.ConstantDims)
+
+
+# ADIOS Engine
+bpFileWriter = bpIO.Open("npTypes.bp", adios2.OpenModeWrite)
+
+bpFileWriter.Write(varI8, data.I8)
+bpFileWriter.Write(varI16, data.I16)
+bpFileWriter.Write(varI32, data.I32)
+bpFileWriter.Write(varI64, data.I64)
+
+bpFileWriter.Write(varU8, data.U8)
+bpFileWriter.Write(varU16, data.U16)
+bpFileWriter.Write(varU32, data.U32)
+bpFileWriter.Write(varU64, data.U64)
+
+bpFileWriter.Write(varR32, data.R32)
+bpFileWriter.Write(varR64, data.R64)
+
+bpFileWriter.Close()