diff --git a/examples/ParallelJIT/ParallelJIT.cpp b/examples/ParallelJIT/ParallelJIT.cpp
index 67d7770..47f990c 100644
--- a/examples/ParallelJIT/ParallelJIT.cpp
+++ b/examples/ParallelJIT/ParallelJIT.cpp
@@ -29,13 +29,13 @@
 #include <iostream>
 using namespace llvm;
 
-static Function* createAdd1(Module* M)
-{
+static Function* createAdd1(Module *M) {
   // Create the add1 function entry and insert this entry into module M.  The
   // function will have a return type of "int" and take an argument of "int".
   // The '0' terminates the list of argument types.
-  Function *Add1F = M->getOrInsertFunction("add1", Type::Int32Ty, Type::Int32Ty,
-                                           (Type *)0);
+  Function *Add1F =
+    cast<Function>(M->getOrInsertFunction("add1", Type::Int32Ty, Type::Int32Ty,
+                                          (Type *)0));
 
   // Add a basic block to the function. As before, it automatically inserts
   // because of the last argument.
@@ -59,12 +59,12 @@
   return Add1F;
 }
 
-static Function *CreateFibFunction(Module *M)
-{
+static Function *CreateFibFunction(Module *M) {
   // Create the fib function and insert it into module M.  This function is said
   // to return an int and take an int parameter.
-  Function *FibF = M->getOrInsertFunction("fib", Type::Int32Ty, Type::Int32Ty,
-                                          (Type *)0);
+  Function *FibF = 
+    cast<Function>(M->getOrInsertFunction("fib", Type::Int32Ty, Type::Int32Ty,
+                                          (Type *)0));
 
   // Add a basic block to the function.
   BasicBlock *BB = new BasicBlock("EntryBlock", FibF);
