diff --git a/demos/optical_bench/src/lens.cpp b/demos/optical_bench/src/lens.cpp
index a3c55b0eb9745ba70ba305210c7f779122888855..8848652a3b90f2d4d4fd59228d5505f5a06ce81e 100644
--- a/demos/optical_bench/src/lens.cpp
+++ b/demos/optical_bench/src/lens.cpp
@@ -349,7 +349,7 @@ void Lens::CreateGlassMaterialInstance() {
                                         manager_->GetGlassProgramIterative());
 
   glass_material_["importance_cutoff"]->setFloat(1e-2f);
-  glass_material_["cutoff_color"]->setFloat(0.034f, 0.055f, 0.085f);
+  glass_material_["cutoff_color"]->setFloat(0.035f, 0.102f, 0.169f);
   glass_material_["fresnel_exponent"]->setFloat(3.0f);
   glass_material_["fresnel_minimum"]->setFloat(0.1f);
   glass_material_["fresnel_maximum"]->setFloat(1.0f);
diff --git a/demos/optical_bench/src/optix_context_manager.cpp b/demos/optical_bench/src/optix_context_manager.cpp
index 02ec10b600491c85c49a841a6f65d569fcdb8fff..6e9bbbf6b4f958443216e84138d612ba373ced3b 100644
--- a/demos/optical_bench/src/optix_context_manager.cpp
+++ b/demos/optical_bench/src/optix_context_manager.cpp
@@ -37,9 +37,7 @@ OptixContextManager::OptixContextManager() {
   context_->setRayTypeCount(2);
   context_->setEntryPointCount(1);
 
-  context_->setPrintEnabled(true);
-  context_->setPrintBufferSize(1024);
-  context_->setStackSize(8000l);
+  context_->setStackSize(2000l);
 
   context_["max_depth"]->setInt(10);
   context_["scene_epsilon"]->setFloat(1.e-4f);
@@ -47,11 +45,17 @@ OptixContextManager::OptixContextManager() {
   // Exception program
   optix::Program exception_program = context_->createProgramFromPTXString(
       GetPtxString("exception.cu"), "exception");
+  context_->setExceptionProgram(0, exception_program);
 
   // Miss Programm (avoid random data in buffer)
   context_->setMissProgram(0, context_->createProgramFromPTXString(
                                   GetPtxString("skybox.cu"), "skyboxLookup"));
 
+  // For debugging
+  // context_->setPrintEnabled(true);
+  // context_->setPrintBufferSize(1024);
+  context_->setExceptionEnabled(RT_EXCEPTION_ALL, false);
+
   // Ray generation program
   optix::Program rayProg = context_->createProgramFromPTXString(
       GetPtxString("perspective_camera.cu"), "pinhole_camera");
diff --git a/demos/optical_bench/src/ray_pass.cpp b/demos/optical_bench/src/ray_pass.cpp
index aae965e9d1fda73ddcbdc31739a9b8c2c9257029..4ff03c2241609aa57a61acedaaecd375d1263c05 100644
--- a/demos/optical_bench/src/ray_pass.cpp
+++ b/demos/optical_bench/src/ray_pass.cpp
@@ -227,7 +227,7 @@ void RayPass::LaunchLaser() {
       random_seed++);  // totally "random" (only used as seed)
   try {
     optix_context_manager_->GetContext()->launch(laser_entry_, 50, 50,
-                                               kLaserTracesPerFrame_);
+                                                 kLaserTracesPerFrame_);
   } catch (optix::Exception e) {
     phx::error(e.getErrorString().c_str());
   }
@@ -244,6 +244,8 @@ void RayPass::CreateLaser() {
   laser_entry_ = context->getEntryPointCount();
   context->setEntryPointCount(laser_entry_ + 1);  // Add new Entrypoint
 
+  context->setExceptionProgram(1, context->getExceptionProgram(1));
+
   // Ray generation program
   optix::Program rayProg = context->createProgramFromPTXString(
       OptixContextManager::GetPtxString("laser_caster.cu"), "laser_caster");