diff --git a/doc/manual/source/examples.rst b/doc/manual/source/examples.rst
index 471dd42097835a404c3532a2c4976c9434cf17d0..435c7fa53ffda317cd1aee8d783f5ff83b2061e4 100644
--- a/doc/manual/source/examples.rst
+++ b/doc/manual/source/examples.rst
@@ -57,6 +57,11 @@ description, please refer to the comments inside the files themselves.
     (2010)*. It demonstrates how to use an explicit steady state file
     to update parameters and call a numerical solver.
 
+``Occbin_example.mod``
+
+    RBC model with two occasionally binding constraints. Demonstrates 
+    how to set up Occbin.
+
 ``Ramsey_Example.mod``
 
     File demonstrating how to conduct optimal policy experiments in a 
diff --git a/examples/Occbin_example.mod b/examples/Occbin_example.mod
new file mode 100644
index 0000000000000000000000000000000000000000..572205888c6ecd2c1d2760bc4303cc9d19252912
--- /dev/null
+++ b/examples/Occbin_example.mod
@@ -0,0 +1,139 @@
+/*
+ * This file shows how to solve an RBC model with two occasionally binding constraints:
+ *  1. The INEG constraint implements quadratic capital adjustment costs if investment
+ *      falls below its steady state. If investment is above steady state, there are no 
+ *      adjustment costs
+ *  2. The IRR constraint implements irreversible investment. Investment cannot be lower 
+ *      than a factor phi of its steady state.
+ *
+ * Notes:
+ *  - This mod-file is based on an example originally provided by Luca Guerrieri 
+ *      and Matteo Iacoviello provided at https://www.matteoiacoviello.com/research_files/occbin_20140630.zip
+ *  - The INEG constraint should theoretically be log_Invest-log(steady_state(Invest))<0, but this will lead
+ *      to numerical issues. Instead we allow for a small negative value of <-0.000001
+ *
+ * Please note that the following copyright notice only applies to this Dynare 
+ * implementation of the model.
+ */
+
+/*
+ * Copyright (C) 2021 Dynare Team
+ *
+ * This is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * It is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * For A copy of the GNU General Public License,
+ * see <https://www.gnu.org/licenses/>.
+ */
+
+
+var A           $A$         (long_name='TFP')
+    C           $C$         (long_name='consumption')
+    Invest      $I$         (long_name='investment')
+    K           $K$         (long_name='capital')
+    Lambda      $\lambda$   (long_name='Lagrange multiplier')
+    log_K       ${\hat K}$  (long_name='log capital')
+    log_Invest  ${\hat I}$  (long_name='log investment')
+    log_C       ${\hat C}$  (long_name='log consumption')
+    ;    
+ 
+varexo epsilon $\varepsilon$        (long_name='TFP shock');
+
+parameters alpha    $\alpha$        (long_name='capital share')
+        delta       $\delta$        (long_name='depreciation')
+        beta        $\beta$         (long_name='discount factor')
+        sigma       $\sigma$        (long_name='risk aversion')
+        rho         $\rho$          (long_name='autocorrelation TFP')
+        phi         $\phi$          (long_name='irreversibility fraction of steady state investment')
+        psi         $\psi$          (long_name='capital adjustment cost')
+        ;
+
+beta=0.96;
+alpha=0.33;
+delta=0.10;
+sigma=2;
+rho = 0.9;
+phi = 0.975;
+psi = 5;
+
+
+model;
+// 1.
+[name='Euler', bind = 'INEG'] 
+-C^(-sigma)*(1+2*psi*(K/K(-1)-1)/K(-1))+ beta*C(+1)^(-sigma)*((1-delta)-2*psi*(K(+1)/K-1)*
+  (-K(+1)/K^2)+alpha*exp(A(+1))*K^(alpha-1))= -Lambda+beta*(1-delta)*Lambda(+1);
+
+[name='Euler', relax = 'INEG']
+-C^(-sigma) + beta*C(+1)^(-sigma)*(1-delta+alpha*exp(A(+1))*K^(alpha-1))= -Lambda+beta*(1-delta)*Lambda(+1);
+
+// 2.
+[name='Budget constraint',bind = 'INEG'] 
+C+K-(1-delta)*K(-1)+psi*(K/K(-1)-1)^2=exp(A)*K(-1)^(alpha);
+
+[name='Budget constraint',relax = 'INEG']
+C+K-(1-delta)*K(-1)=exp(A)*K(-1)^(alpha);
+
+// 3.
+[name='LOM capital']
+Invest = K-(1-delta)*K(-1);
+
+// 4.
+[name='investment',bind='IRR,INEG']
+(log_Invest - log(phi*steady_state(Invest))) = 0;
+[name='investment',relax='IRR']
+Lambda=0;
+[name='investment',bind='IRR',relax='INEG']
+(log_Invest - log(phi*steady_state(Invest))) = 0;
+
+// 5. 
+[name='LOM TFP']
+A = rho*A(-1)+epsilon;
+
+// Definitions
+[name='Definition log capital']
+log_K=log(K);
+[name='Definition log consumption']
+log_C=log(C);
+[name='Definition log investment']
+log_Invest=log(Invest);
+end;
+
+occbin_constraints;
+name 'IRR'; bind log_Invest-log(steady_state(Invest))<log(phi); relax Lambda<0;
+name 'INEG'; bind log_Invest-log(steady_state(Invest))<-0.000001; %not exactly 0 for numerical reasons
+end;
+
+steady_state_model;
+K = ((1/beta-1+delta)/alpha)^(1/(alpha-1));
+C = -delta*K +K^alpha;
+Invest = delta*K;
+log_K = log(K);
+log_C = log(C);
+log_Invest = log(Invest);
+Lambda = 0;
+A=0;
+end;
+
+shocks;
+  var epsilon; stderr 0.015;
+end;
+
+steady;
+
+shocks(surprise);
+var epsilon;
+periods 1:9, 10, 50, 90, 130, 131:169;
+values -0.0001, -0.01,-0.02, 0.01, 0.02, 0;
+end;
+
+occbin_setup;
+occbin_solver(simul_periods=200,simul_check_ahead_periods=200);
+
+occbin_graph log_C epsilon Lambda log_K log_Invest A;
\ No newline at end of file