diff --git a/ethereum/vm.py b/ethereum/vm.py
index <HASH>..<HASH> 100644
--- a/ethereum/vm.py
+++ b/ethereum/vm.py
@@ -637,7 +637,7 @@ def vm_execute(ext, msg, code):
                 # Get result
                 result, gas, data = ext.msg(call_msg)
                 if result == 0:
-                    stk.append(0)
+                    return vm_exception('Child Call Failed')
                 else:
                     stk.append(1)
                 # Set output memory
Fixed issue where child tx failure wouldn't result in vm throwing TransactionFailed

If you had something like this 



```def foo():

   x = self.bar()

   return(x)



def bar():

   ~invalid()```



Calling self.foo() in pyethereum would *not* result in a transaction failure but instead just return 0



<URL>.