diff --git a/llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp b/llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp
index b3ea4c6216776bc380c0e46e3d1c35e3ad63aee3..fa99523df43dec18599e779370f2adea7b152daf 100644
--- a/llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp
+++ b/llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp
@@ -835,6 +835,7 @@ void CGT_NVPTX::codeGen(DFLeafNode* N) {
 
   // Checking which node is the kernel launch
   DFNode* PNode = N->getParent();
+  errs() << "Parent Node: " << PNode << " " << PNode->getFuncPointer()->getName() << "\n";
   int pLevel = PNode->getLevel();
   int pReplFactor = PNode->getNumOfDim();
 
@@ -900,7 +901,7 @@ void CGT_NVPTX::codeGen(DFLeafNode* N) {
   } else {
     errs() << "WARNING: Visiting a node for which code already generated!\n";
   }
-
+  
   transformFunctionToVoid(F_nvptx);
 
 
@@ -910,9 +911,10 @@ void CGT_NVPTX::codeGen(DFLeafNode* N) {
   for (DFNode::const_indfedge_iterator ieb = N->indfedge_begin(), iee = N->indfedge_end();
        ieb != iee; ++ieb) {
     DFNode *SrcDFNode = (*ieb)->getSourceDF();
-    errs() << "Found edge from node: "<< SrcDFNode->getFuncPointer()->getName() << "\n";
+    errs() << "Found edge from node: " << " " << SrcDFNode->getFuncPointer()->getName() << "\n";
+    errs() << "Current Node: " << N->getFuncPointer()->getName() << "\n";
     errs() << "isAllocationNode = "<< SrcDFNode->isAllocationNode() << "\n";
-    if (SrcDFNode != PNode) {
+    if (!SrcDFNode->isDummyNode()) {
       assert(SrcDFNode->isAllocationNode());
       kernel->AllocationNode = dyn_cast<DFLeafNode>(SrcDFNode);
       kernel->allocInArgMap = SrcDFNode->getInArgMap();
@@ -1333,8 +1335,9 @@ void CGT_NVPTX::writeKernelsModule() {
 
 void CGT_NVPTX::transformFunctionToVoid(Function* F) {
 
+  DEBUG(errs() << "Transforming function to void: " << F->getName() << "\n");
   // FIXME: Maybe do that using the Node?
-  StructType* FRetTy = cast<StructType>(F->getReturnType());
+  StructType* FRetTy = dyn_cast<StructType>(F->getReturnType());
   assert(FRetTy && "Return Type must always be a struct");
 
   // Keeps return statements, because we will need to replace them