"just read the docs" not there. Quiet. "just read the code" code snippet from Postnuke below. Be quiet. In postnuke, the API calls are rather sparsely documented. They like to call functions like this: $output->URL(pnVarPrepForDisplay(pnModURL('Mymodule', 'user', 'viewdetails', array('id' => $id))), "Really Neat Link!! Click me!!"); The pnModURL part makes a link in HTML output. Clicking on the link will call the function function mymodule_user_viewdetails($args){ list($id) = pnVarCleanFromInput('id'); extract($args); .... } and, magically, the variable $id appears as a global variable inside the function mymodule_user_viewdetails. Now the problem I'm having is that if I pass id=57, which appears as 57 in the URL in the browser, I get 5. If I pass id=112, I get 1. It just chops stuff off. I would like to debug this, BUT function pnVarCleanFromInput() { $search = array('||si', '||si', '||si', '||si', '||si', '||si', '||si', '|STYLE\s*=\s*"[^"]*"|si'); $replace = array(''); $resarray = array(); what the hell??? it accepts no arguements, yet the arguements are required or the code crashes!!! cutting the line list($id) = pnVarCleanFromInput('id'); gets me NO arguments at all! I have never debugged anything like this. Arguements seem to pass through four layers, two of which are invisible. If anyone is showing up at Stamtisch that knows about this, help would be appreciated. --Alexander