unable to create new draft programatically for published node I am using workbench_moderation module.

When I edit the node and save it using node_save($node) it is changing the status of actual node to draft and original node is getting unpublished.

While I want to keep original node as published and want to create new reversion in draft status.

I used below code too but it is not working form me(It is immediately publishing my changes).

node_save($node);
workbench_moderation_moderate($node, 'published');
I've not tested or checked against the source code but I think you should try to node_load after node_save and before workbench_moderation_moderate.

node_save($node);
$saved_node = node_load($node-&gt;nid);
workbench_moderation_moderate($saved_node, 'published');