diff --git a/get-google-files b/get-google-files
deleted file mode 100755
index 009e169..0000000
--- a/get-google-files
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python
-import sys, random, urllib2, zipfile, StringIO, os
-from optparse import OptionParser
-
-FILENAME=["gapps-gb-20110613-signed.zip","gapps-hdpi-20101114-signed.zip","gapps-mdpi-20110501-signed.zip","gapps-mdpi-tiny-20101020-signed.zip","gapps-mdpi-tegra-20101020-signed.zip","gapps-passion-EPE54B-signed.zip","gapps-ds-ERE36B-signed.zip","DRC83_base_defanged.zip"]
-VERSIONS=["gb","hdpi","mdpi","mdpi-tiny","tegra","cm5hdpi","cm5mdpi","cm4"]
-MIRRORS=["http://goo-inside.me/gapps/","http://android.d3xt3r01.tk/cyanogen/gapps/"]
-
-def device():
-    print "usage: get-google-files -m [method] -v [version]"
-    print "Note:  Device method is currently not implemented, please use download"
-    sys.exit(1)
-
-def download(version):
-    try:
-        os.makedirs(os.path.join(os.path.dirname(__file__), "proprietary"))
-    except:
-        pass
-    if len(MIRRORS) > 1:
-        i = random.randrange(0, len(MIRRORS)-1)
-    else:
-        i = 0
-
-    try:
-        j = VERSIONS.index(version.lower())
-    except ValueError:
-	print "GApps version not found, defaulting to HDPI"
-        j = 0
-
-    url = MIRRORS[i] + FILENAME[j]
-
-    print "Fetching %s GApps from %s" % (version.upper(),url)
-
-    data = urllib2.urlopen(url).read()
-    zip = zipfile.ZipFile(StringIO.StringIO(data),'r')
-    
-    for filename in zip.namelist():
-        if filename.split("/")[0] == "system" and filename[-1] != "/":
-            print "Extracting %s" % filename
-            try:
-                bytes = zip.read(filename)
-                fd = open(os.path.join(os.path.dirname(__file__), "proprietary", os.path.basename(filename)),"wb")
-                fd.write(bytes)
-                fd.close()
-            except Exception, e:
-                print e
-                pass
-
-def main():
-    parser = OptionParser(usage="usage: %prog [options]")
-    parser.add_option("-m", "--method", dest='method', default="download", help="Extraction Method: download")
-    parser.add_option("-v", "--version", dest='version', default="gb", help="GApps Version: gb, hdpi, mdpi, mdpi-tiny, tegra, cm5hdpi, cm5mdpi, cm4 [default: gb]")
-    (options, args) = parser.parse_args()
-
-    if options.method == "device":
-        return device()
-
-    if options.method == "download":
-        return download(options.version)
-
-if __name__ == '__main__':
-    main()
diff --git a/prebuilt/common/etc/apns-conf.xml b/prebuilt/common/etc/apns-conf.xml
index 3c18719..f9dff7a 100644
--- a/prebuilt/common/etc/apns-conf.xml
+++ b/prebuilt/common/etc/apns-conf.xml
@@ -194,8 +194,7 @@
   <apn carrier="O2 MOBILE WEB" mcc="234" mnc="02" apn="mobile.o2.co.uk" user="O2web" password="O2web" type="default,supl" />
   <apn carrier="O2 MMS Prepay" mcc="234" mnc="02" apn="payandgo.o2.co.uk" user="payandgo" password="password" mmsc="http://mmsc.mms.o2.co.uk:8002" mmsproxy="193.113.200.195" mmsport="8080" type="mms" />
   <apn carrier="O2 MMS Postpay" mcc="234" mnc="02" apn="wap.o2.co.uk" user="o2wap" password="password" mmsc="http://mmsc.mms.o2.co.uk:8002" mmsproxy="193.113.200.195" mmsport="8080" type="mms" />
-  <apn carrier="GiffGaff" mcc="234" mnc="10" apn="giffgaff.com" user="giffgaff" password="password" proxy="193.113.200.195" port="8080" type="default,supl" />
-  <apn carrier="GiffGaff MMS" mcc="234" mnc="10" apn="giffgaff.com" user="giffgaff" password="password" server="http://mmsc.mediamessaging.co.uk:8002" mmsc="http://mmsc.mediamessaging.co.uk:8002" mmsproxy="193.113.200.195" mmsport="8080" type="mms" />
+  <apn name="Giffgaff" numeric="23410" mcc="234" mnc="10" apn="giffgaff.com" user="giffgaff" server="http://mmsc.mediamessaging.co.uk:8002" password="password" proxy="" port="" mmsproxy="193.113.200.195" mmsport="8080" mmsprotocol="null" mmsc="http://mmsc.mediamessaging.co.uk:8002" type="default,supl,mms" />
   <apn carrier="O2 UK MMS" mcc="234" mnc="10" apn="idata.o2.co.uk" user="vertigo" password="password" mmsc="http://mmsc.mms.o2.co.uk:8002" mmsproxy="193.113.200.195" mmsport="8080" type="mms" />
   <apn carrier="O2 UK" mcc="234" mnc="10" apn="mobile.o2.co.uk" user="O2web" password="O2web" type="default,supl" />
   <apn carrier="O2 UK" mcc="234" mnc="10" apn="mobile.o2.co.uk" user="vertigo" type="default,supl,mms" />
diff --git a/products/cyanogen_sholes.mk b/products/cyanogen_sholes.mk
index ebd355d..40de0bb 100644
--- a/products/cyanogen_sholes.mk
+++ b/products/cyanogen_sholes.mk
@@ -29,7 +29,7 @@
     endif
 endif
 
-PRODUCT_BUILD_PROP_OVERRIDES := BUILD_ID=FRG83D BUILD_DISPLAY_ID=GRJ22 PRODUCT_NAME=voles TARGET_DEVICE=sholes BUILD_FINGERPRINT=verizon/voles/sholes/sholes:2.2.1/FRG83D/75603:user/release-keys PRODUCT_BRAND=verizon PRIVATE_BUILD_DESC="voles-user 2.2.1 FRG83D 75603 release-keys" BUILD_NUMBER=75603 BUILD_UTC_DATE=1289367602 TARGET_BUILD_TYPE=user BUILD_VERSION_TAGS=release-keys USER=android-build
+PRODUCT_BUILD_PROP_OVERRIDES := BUILD_ID=FRG83G BUILD_DISPLAY_ID=GRJ22 PRODUCT_NAME=voles TARGET_DEVICE=sholes BUILD_FINGERPRINT=verizon/voles/sholes/sholes:2.2.2/FRG83G/91102:user/release-keys PRODUCT_BRAND=verizon PRIVATE_BUILD_DESC="voles-user 2.2.2 FRG83G 91102 release-keys" BUILD_NUMBER=91102 BUILD_UTC_DATE=1294972140 TARGET_BUILD_TYPE=user BUILD_VERSION_TAGS=release-keys USER=android-build
 
 PRODUCT_COPY_FILES +=  \
     vendor/cyanogen/prebuilt/hdpi/media/bootanimation.zip:system/media/bootanimation.zip
