diff --git a/backends/GenerateC.hs b/backends/GenerateC.hs
index 0f3d238..add6a20 100644
--- a/backends/GenerateC.hs
+++ b/backends/GenerateC.hs
@@ -2086,6 +2086,7 @@ cgenProcCall n as
 cgenIntrinsicProc :: Meta -> String -> [A.Actual] -> CGen ()
 cgenIntrinsicProc m "ASSERT" [A.ActualExpression e] = call genAssert m e
 cgenIntrinsicProc _ "RESCHEDULE" [] = call genReschedule
+cgenIntrinsicProc m "CAUSEERROR" [] = call genStop m "CAUSEERROR"
 cgenIntrinsicProc m s as = case lookup s intrinsicProcs of
   Just amtns -> do tell ["occam_", [if c == '.' then '_' else c | c <- s], "(wptr,"]
                    when (s == "RESIZE.MOBILE.ARRAY.1D") $
diff --git a/common/Intrinsics.hs b/common/Intrinsics.hs
index 483a073..71ea7a7 100644
--- a/common/Intrinsics.hs
+++ b/common/Intrinsics.hs
@@ -128,6 +128,7 @@ simpleFloatIntrinsics = concatMap double $
 intrinsicProcs :: [(String, [(A.AbbrevMode, A.Type, String)])]
 intrinsicProcs =
     [ ("ASSERT", [(A.ValAbbrev, A.Bool, "value")])
+    , ("CAUSEERROR", [])
     , ("RESCHEDULE", [])
     ] ++ concat [
       (zip ["INT" ++ suffix ++ "TOSTRING", "HEX" ++ suffix ++ "TOSTRING"] $ repeat