diff --git a/rigify/generate.py b/rigify/generate.py
index 88b216ed6eeefdbf7835afb07040b3ad148a9e51..e0da3b00546d33c0bd181c34149cde2b8caae313 100644
--- a/rigify/generate.py
+++ b/rigify/generate.py
@@ -156,8 +156,13 @@ class Generator(base_generate.BaseGenerator):
         # Select the target rig and join
         select_object(context, obj)
 
+        saved_matrix = obj.matrix_world.copy()
+        obj.matrix_world = metarig.matrix_world
+
         bpy.ops.object.join()
 
+        obj.matrix_world = saved_matrix
+
         # Select the generated rig
         select_object(context, obj, deselect_all=True)