     (forward-char -1)
     (shm-adjust-dependents (point) 1)))
 
-(defun shm/wrap-parens ()
+(defun shm/wrap-parens (&optional current)
   "Wrap the node in parentheses."
   (interactive)
   (cond
    ((region-active-p)
     (shm-wrap-delimiters "(" ")"))
    (t (let ((line (line-number-at-pos))
-            (node (shm-current-node)))
+            (node (or current (shm-current-node))))
         (save-excursion
           (goto-char (shm-node-start node))
           (insert "(")

            (shm-insert-string " "))
          (goto-char point)))
       (t
        (if (not (or (looking-back "[ ,[({]")
                     (bolp)))
            (progn (shm-insert-string " ") 1)
          0)

        (let ((point (point)))
          (shm-insert-string close)
          (when (and (/= (point) (line-end-position))
                     (not (looking-at "[]){} ,!]")))
            (shm-insert-string " "))
          (goto-char point)
          (shm/init t))))))))
