diff --git a/Documentation/Examples/cascade_example.cc b/Documentation/Examples/cascade_example.cc
index ac8c1f897d830183d4b3e27e0af45e04f8265cc5..027ecea81604af8d28e6113edc73ec91751d41b0 100644
--- a/Documentation/Examples/cascade_example.cc
+++ b/Documentation/Examples/cascade_example.cc
@@ -54,12 +54,16 @@ public:
      */
     // target nuclei: A < 18
     // FOR NOW: assume target is oxygen
-    int kTarget = 16;
+    int kTarget = 1;
     double beamEnergy =  p.GetEnergy() / 1_GeV; 
     std::cout << "ProcessSplit: " << "MinStep: en: " << beamEnergy << " pid:" << kBeam << std::endl;
-    double prodCrossSection,dummy;
-    
-    sib_sigma_hnuc_(kBeam, kTarget, beamEnergy, prodCrossSection, dummy );
+    double prodCrossSection,dummy,dum1,dum2,dum3,dum4;
+    double dumdif[3];
+
+    if(kTarget==1)
+      sib_sigma_hp_(kBeam, beamEnergy, dum1, dum2, prodCrossSection, dumdif,dum3, dum4 );
+    else
+      sib_sigma_hnuc_(kBeam, kTarget, beamEnergy, prodCrossSection, dummy );
     
     std::cout << "ProcessSplit: " << "MinStep: sibyll return: " << prodCrossSection << std::endl;
     CrossSectionType sig = prodCrossSection * 1_mbarn;
diff --git a/Framework/Cascade/sibyll2.3c.h b/Framework/Cascade/sibyll2.3c.h
index cd70bf500ab1fbd61fd9afcc6dfd8c99c3a6cb77..e66f1f74426ede7caf3bbf19ff60097ae6c2aa3c 100644
--- a/Framework/Cascade/sibyll2.3c.h
+++ b/Framework/Cascade/sibyll2.3c.h
@@ -85,6 +85,7 @@ extern"C"{
   //double fpni_(double&, int&);
 
   void sib_sigma_hnuc_(int&,int&,double&,double&,double&);
+  void sib_sigma_hp_(int&,double&,double&,double&,double&,double*,double&,double&);
   
   double s_rndm_(int&);