diff --git a/swig/libcclparser.i b/swig/libcclparser.i
index 2fb924a7656f7182367fc1c4615e6a411612b04d..46f0be74915d752a1f0bede51fdc51ec13af6396 100644
--- a/swig/libcclparser.i
+++ b/swig/libcclparser.i
@@ -77,6 +77,14 @@ namespace Wccl {
 
     /* --------------------------------------------------------------------- */
 
+    %exception {
+      try {
+        $action
+      } catch (PwrNlp::PwrNlpError &e) {
+        PyErr_SetString(PyExc_IndexError, e.info().c_str());
+        return NULL;
+      }
+    }
     shared_ptr<FunctionalOperator>  
       parseAnyOperator(const std::string& operator_string) const;