If this program were tweaked so that mu were instead a temporary
variable, then all the subsequent -drop mu- could (and should) be
omitted. 
Other improvements look possible -- for example, why wire in the
particular -xtgee- call -- 
but that's one for now. 
capture program drop qicm
program define qicm
	args corr
	quietly {
		capture quietly xtgee yvar x1 x2 x3 x4 x5 x6 xm
[pweight=wt], robust corr(`corr')
		if (_rc !=0) {
			exit
		}
		matrix V = e(V)
		matrix T = Ai*V
		matrix t = trace(T)
		scalar off = t[1,1]
		tempvar ql mu 
		quietly predict double `mu', mu
		quietly generate double `ql' = (yvar*log(`mu'/(1-`mu'))
+ log(1-`mu'))
		quietly summarize `ql', meanonly
	}
	display in green "QIC = " in yellow 2*(off-r(sum))
end
Mustillo, Sarah A
I just tried the QIC program and got the same error.  I always use the
code provided by Hardin and Hilbe in their GEE book.  Put in your own Y
variable and X variables and run it like a do file:
*From Hardin&Hilbe 2002 - Using QIC to determine the best correlation
structure for the data.
xtgee yvar x1 x2 x3 x4 x5 x6 xm [pweight=wt], robust corr(ind)
matrix A= e(V)
matrix Ai= syminv(A)
capture program drop qicm
program define qicm
	args corr
	quietly {
		capture quietly xtgee yvar x1 x2 x3 x4 x5 x6 xm
[pweight=wt], robust corr(`corr')
		if (_rc !=0) {
			exit
		}
		matrix V = e(V)
		matrix T = Ai*V
		matrix t = trace(T)
		scalar off = t[1,1]
		tempvar ql
		quietly predict double mu, mu
		quietly generate double `ql' = (yvar*log(mu/(1-mu)) +
log(1-mu))
		quietly summarize `ql', meanonly
	}
	display in green "QIC = " in yellow 2*(off-r(sum))
end
qicm ind
drop mu
qicm exch
drop mu
qicm "ar 1"
drop mu
qicm "ar 2"
drop mu
qicm unst
drop mu
qicm "sta 2"
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/