diff --git a/packages/babel-sugar-v-on/src/index.js b/packages/babel-sugar-v-on/src/index.js
index 52fb2cd..7f777db 100644
--- a/packages/babel-sugar-v-on/src/index.js
+++ b/packages/babel-sugar-v-on/src/index.js
@@ -275,7 +275,7 @@ export default function(babel) {
         t.jSXSpreadAttribute(
           t.objectExpression([
             t.objectProperty(
-              t.identifier('on'),
+              t.identifier(isNative ? 'nativeOn' : 'on'),
               t.objectExpression([t.objectProperty(t.stringLiteral(event), expression)]),
             ),
           ]),
diff --git a/packages/babel-sugar-v-on/test/snapshot.js b/packages/babel-sugar-v-on/test/snapshot.js
index a201623..f049430 100644
--- a/packages/babel-sugar-v-on/test/snapshot.js
+++ b/packages/babel-sugar-v-on/test/snapshot.js
@@ -29,6 +29,15 @@ const tests = [
     from: `render(h => <div v-on:click_native={foo}>test</div>)`,
     to: `render(h => <div nativeOn-click={foo}>test</div>);`,
   },
+  {
+    name: 'v-on:click_native_capture',
+    from: `render(h => <div v-on:click_native_capture={foo}>test</div>)`,
+    to: `render(h => <div {...{
+  nativeOn: {
+    "!click": foo
+  }
+}}>test</div>);`,
+  },
   {
     name: 'v-on:click with arrow function expression',
     from: `render(h => <div v-on:click={myEvent => foo(1, 2, 3, $myEvent)}>test</div>)`,