diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,10 @@
 
 ## Unreleased
 
+## 0.6.1.0
+
+- Add `OpenCascade.BRepPrimAPI_MakeTorus`
+
 ## 0.6.0.1
 
 ## 0.6.0.0
diff --git a/cpp/hs_BRepPrimAPI_MakeTorus.cpp b/cpp/hs_BRepPrimAPI_MakeTorus.cpp
new file mode 100644
--- /dev/null
+++ b/cpp/hs_BRepPrimAPI_MakeTorus.cpp
@@ -0,0 +1,12 @@
+#include <BRepPrimAPI_MakeTorus.hxx>
+#include <TopoDS_Solid.hxx>
+#include <TopoDS_Shell.hxx>
+#include "hs_BRepPrimAPI_MakeTorus.h"
+
+BRepPrimAPI_MakeTorus * hs_new_BRepPrimAPI_MakeTorus_fromRadii(double major, double minor){
+    return new BRepPrimAPI_MakeTorus(major, minor);
+}
+
+void hs_delete_BRepPrimAPI_MakeTorus(BRepPrimAPI_MakeTorus * makeTorus){
+    delete makeTorus;
+}
diff --git a/cpp/hs_BRepPrimAPI_MakeTorus.h b/cpp/hs_BRepPrimAPI_MakeTorus.h
new file mode 100644
--- /dev/null
+++ b/cpp/hs_BRepPrimAPI_MakeTorus.h
@@ -0,0 +1,18 @@
+#ifndef HS_BREPPRIMAPI_MAKETORUS_H
+#define HS_BREPPRIMAPI_MAKETORUS_H
+
+#include "hs_types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+BRepPrimAPI_MakeTorus * hs_new_BRepPrimAPI_MakeTorus_fromRadii(double major, double minor);
+
+void hs_delete_BRepPrimAPI_MakeTorus(BRepPrimAPI_MakeTorus * makeTorus);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // HS_BREPPRIMAPI_MAKETORUS_H
diff --git a/cpp/hs_types.h b/cpp/hs_types.h
--- a/cpp/hs_types.h
+++ b/cpp/hs_types.h
@@ -43,6 +43,7 @@
 typedef void BRepFilletAPI_MakeFillet;
 typedef void BRepFilletAPI_MakeChamfer;
 typedef void BRepPrimAPI_MakeBox;
+typedef void BRepPrimAPI_MakeTorus;
 typedef void TopExp_Explorer;
 typedef void BRepPrimAPI_MakeCylinder;
 typedef void BRepPrimAPI_MakeRevol;
diff --git a/opencascade-hs.cabal b/opencascade-hs.cabal
--- a/opencascade-hs.cabal
+++ b/opencascade-hs.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           opencascade-hs
-version:        0.6.0.1
+version:        0.6.1.0
 synopsis:       Thin Wrapper for the OpenCASCADE CAD Kernel
 description:    Please see the README on GitHub at <https://github.com/joe-warren/opencascade-hs#readme>
 category:       Graphics,FFI
@@ -56,6 +56,7 @@
     cpp/hs_BRepPrimAPI_MakePrism.h
     cpp/hs_BRepPrimAPI_MakeRevol.h
     cpp/hs_BRepPrimAPI_MakeSphere.h
+    cpp/hs_BRepPrimAPI_MakeTorus.h
     cpp/hs_BRepTools_WireExplorer.h
     cpp/hs_Font_BRepFont.h
     cpp/hs_Font_BRepTextBuilder.h
@@ -190,6 +191,7 @@
       OpenCascade.BRepPrimAPI.MakePrism
       OpenCascade.BRepPrimAPI.MakeRevol
       OpenCascade.BRepPrimAPI.MakeSphere
+      OpenCascade.BRepPrimAPI.MakeTorus
       OpenCascade.BRepPrimAPI.Types
       OpenCascade.BRepTools
       OpenCascade.BRepTools.Internal.Destructors
@@ -384,6 +386,7 @@
       cpp/hs_BRepPrimAPI_MakePrism.cpp
       cpp/hs_BRepPrimAPI_MakeRevol.cpp
       cpp/hs_BRepPrimAPI_MakeSphere.cpp
+      cpp/hs_BRepPrimAPI_MakeTorus.cpp
       cpp/hs_BRepTools_WireExplorer.cpp
       cpp/hs_Font_BRepFont.cpp
       cpp/hs_Font_BRepTextBuilder.cpp
diff --git a/src/OpenCascade/BRepPrimAPI/Internal/Destructors.hs b/src/OpenCascade/BRepPrimAPI/Internal/Destructors.hs
--- a/src/OpenCascade/BRepPrimAPI/Internal/Destructors.hs
+++ b/src/OpenCascade/BRepPrimAPI/Internal/Destructors.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE CApiFFI #-}
 module OpenCascade.BRepPrimAPI.Internal.Destructors 
 ( deleteMakeBox
+, deleteMakeTorus
 , deleteMakeRevol
 ) where
 
@@ -9,6 +10,7 @@
 import Foreign.Ptr
 
 foreign import capi unsafe "hs_BRepPrimAPI_MakeBox.h hs_delete_BRepPrimAPI_MakeBox" deleteMakeBox :: Ptr MakeBox -> IO ()
+foreign import capi unsafe "hs_BRepPrimAPI_MakeTorus.h hs_delete_BRepPrimAPI_MakeTorus" deleteMakeTorus :: Ptr MakeTorus -> IO ()
 foreign import capi unsafe "hs_BRepPrimAPI_MakeRevol.h hs_delete_BRepPrimAPI_MakeRevol" deleteMakeRevol :: Ptr MakeRevol -> IO ()
 
 
diff --git a/src/OpenCascade/BRepPrimAPI/MakeTorus.hs b/src/OpenCascade/BRepPrimAPI/MakeTorus.hs
new file mode 100644
--- /dev/null
+++ b/src/OpenCascade/BRepPrimAPI/MakeTorus.hs
@@ -0,0 +1,18 @@
+{-# LANGUAGE CApiFFI #-}
+module OpenCascade.BRepPrimAPI.MakeTorus
+( fromRadii
+) where
+
+import OpenCascade.BRepPrimAPI.Types (MakeTorus)
+import OpenCascade.BRepPrimAPI.Internal.Destructors (deleteMakeTorus)
+import Foreign.C
+import Foreign.Ptr
+import Data.Acquire
+import Data.Coerce (coerce)
+
+-- new
+
+foreign import capi unsafe "hs_BRepPrimAPI_MakeTorus.h hs_new_BRepPrimAPI_MakeTorus_fromRadii" rawFromRadii :: CDouble -> CDouble ->  IO (Ptr MakeTorus)
+
+fromRadii :: Double -> Double -> Acquire (Ptr MakeTorus)
+fromRadii major minor = mkAcquire (rawFromRadii (coerce major) (coerce minor)) deleteMakeTorus
diff --git a/src/OpenCascade/BRepPrimAPI/Types.hs b/src/OpenCascade/BRepPrimAPI/Types.hs
--- a/src/OpenCascade/BRepPrimAPI/Types.hs
+++ b/src/OpenCascade/BRepPrimAPI/Types.hs
@@ -3,6 +3,7 @@
 module OpenCascade.BRepPrimAPI.Types
 ( MakeBox
 , MakeRevol
+, MakeTorus
 ) where
 
 import OpenCascade.BRepBuilderAPI.MakeShape
@@ -10,6 +11,8 @@
 
 data MakeBox
 data MakeRevol
+data MakeTorus
 
 instance Inheritance.SubTypeOf MakeShape MakeBox
 instance Inheritance.SubTypeOf MakeShape MakeRevol
+instance Inheritance.SubTypeOf MakeShape MakeTorus
