diff --git a/ext/digest/lib/digest/sha2.rb b/ext/digest/sha2/lib/digest/sha2.rb
similarity index 100%
rename from ext/digest/lib/digest/sha2.rb
rename to ext/digest/sha2/lib/digest/sha2.rb
diff --git a/ext/digest/lib/digest/sha2/loader.rb b/ext/digest/sha2/lib/digest/sha2/loader.rb
similarity index 100%
rename from ext/digest/lib/digest/sha2/loader.rb
rename to ext/digest/sha2/lib/digest/sha2/loader.rb
diff --git a/tool/sync_default_gems.rb b/tool/sync_default_gems.rb
index b9ad750052..7f464115dd 100755
--- a/tool/sync_default_gems.rb
+++ b/tool/sync_default_gems.rb
@@ -320,7 +320,9 @@ def sync_default_gems(gem)
     cp_r("#{upstream}/ext/digest", "ext")
     mkdir_p("ext/digest/lib/digest")
     cp_r("#{upstream}/lib/digest.rb", "ext/digest/lib/")
-    cp_r("#{upstream}/lib/digest/sha2.rb", "ext/digest/lib/digest")
+    mkdir_p("ext/digest/sha2/lib/digest")
+    cp_r("#{upstream}/lib/digest/sha2.rb", "ext/digest/sha2/lib/digest")
+    move("ext/digest/lib/digest/sha2", "ext/digest/sha2/lib/digest")
     cp_r("#{upstream}/test/digest", "test")
     cp_r("#{upstream}/digest.gemspec", "ext/digest")
     `git checkout ext/digest/depend ext/digest/*/depend`