I am working on Cocoa framework, XCode 2.4.1 with Obj-C My whole application is divided into two - Say "A" and "B". "A" runs in background for connecting to transfer and provides communication between client and server using gsoap. "B" is a GUI which contacts "A" for all operations performed. "A" depends on "Mono - 1.2.2 version or above". When installed properly with user defaults "A" (background) must be placed in a place like "$HOME" (which I decide during packaging), i mean "A" must not be "relocated" while installation and "B" will be under "Applications" I am using "packagemaker" and making a "mpkg" file and placing it in one empty directory eg: temp. Now I will use the following command to make "dmg". I am providing licence, readme etc details that are necessary. Code: hdiutil create -srcfolder <temp folder> -volname <vol name> <dest-folder>/<dmg name>.dmg Now the package is made successfull. While installing the dmg, it will show a window with "mpkg" file. double click it, it will show installation window for license agreement etc. It will have an option to "customize". 1. Now in this I want to make this button "in-active" as I don't want to make my "A" and "B" relocatable. 2. At the time of installation it must check for the availability of "Mono and its version 1.2.2 or above". If not available, it must throw an error and halt installation. How to achieve this? I think it is clear. Please excuse me it not clear. I will provide u the necessary details if any missing.