diff --git a/d2o/distributed_data_object.py b/d2o/distributed_data_object.py
index eee00b3cab9ba36c0c7cf76b9f5d6f92e30f1d38..6da97b5ffc62516f3115766fa0dfb00ff6b632dd 100644
--- a/d2o/distributed_data_object.py
+++ b/d2o/distributed_data_object.py
@@ -434,10 +434,12 @@ class distributed_data_object(object):
             result_data = np.vectorize(function,
                                        otypes=[local_data.dtype])(local_data)
 
-        if inplace is True:
+        if inplace:
             result_d2o = self
         else:
-            result_d2o = self.copy_empty(dtype=result_data.dtype)
+            if dtype is None:
+                dtype = result_data.dtype
+            result_d2o = self.copy_empty(dtype=dtype)
 
         result_d2o.set_local_data(result_data, copy=False)