Tom's right, As in the first message of this thread kindof shows; func2(INOUT) adds the var_1 to itself and ouputs back to func1 as the updated value. NOTICE: var_1 starts as 5 NOTICE: var_1 in func2 is 10 CONTEXT: PL/pgSQL function "func1" line 7 at assignment NOTICE: var_X Now is (10,5) --var_1 was 1st returned var So INOUTS "work" the way Tom says in PG8.1beta3 WIN XP The part I was confused about was that I thought that the value would then be modified in func1 (by func2) since it was returned using INOUT but Tom set me strait - INOUTS are nice 'shorthand'. (I waisted a lot of time not knowing this.) Thanks P.S. - Tom if the return of func2 = var_X = (10,5) how can I parse the varible out like: var_Y = var_X[1] -- first ARRAY item to get var_Y = 10? Troy H ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org