diff --git a/VERSION b/VERSION
index 77a7294..b3206bd 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.360
+1.0.361
diff --git a/common/foundry_install.py b/common/foundry_install.py
index cb93cda..231c316 100755
--- a/common/foundry_install.py
+++ b/common/foundry_install.py
@@ -2152,6 +2152,7 @@
             destdir = targetdir + cdl_reflib + 'spi'
             srcdir = targetdir + gds_reflib + 'gds'
             lefdir = targetdir + lef_reflib + 'lef'
+            cdldir = targetdir + cdl_reflib + 'cdl'
             os.makedirs(destdir, exist_ok=True)
 
         # For each library, create the library subdirectory
@@ -2165,14 +2166,17 @@
                 destlibdir = destdir + '/' + destlib
                 srclibdir = srcdir + '/' + destlib
                 leflibdir = lefdir + '/' + destlib
+                cdllibdir = cdldir + '/' + destlib
             else:
                 destdir = targetdir + cdl_reflib + destlib + '/spice'
                 srcdir = targetdir + gds_reflib + destlib + '/gds'
                 lefdir = targetdir + lef_reflib + destlib + '/lef'
+                cdldir = targetdir + cdl_reflib + destlib + '/cdl'
 
                 destlibdir = destdir
                 srclibdir = srcdir
                 leflibdir = lefdir
+                cdllibdir = cdldir
 
             os.makedirs(destlibdir, exist_ok=True)
 
@@ -2201,6 +2205,15 @@
                 llist = glob.glob(leflibdir + '/*.lef')
                 llist = natural_sort.natural_sort(llist)
 
+            if have_cdl and no_cdl_convert:
+                # CDL is not being converted directly to SPICE but it exists,
+                # and being the only source of pin order, it should be used
+                # for pin order annotation.
+                allcdllibname = cdllibdir + '/' + destlib + '.cdl'
+                if not os.path.isfile(allcdllibname):
+                    clist = glob.glob(cdllibdir + '/*.cdl')
+                    clist = natural_sort.natural_sort(clist)
+
             print('Creating magic generation script to generate SPICE library.') 
             with open(destlibdir + '/generate_magic.tcl', 'w') as ofile:
                 print('#!/usr/bin/env wish', file=ofile)
@@ -2232,6 +2245,14 @@
                 else:
                     print('lef read ' + allleflibname, file=ofile)
 
+                if have_cdl and no_cdl_convert:
+                    if not os.path.isfile(allcdllibname):
+                        # Annotate the cells with pin order from the CDL files
+                        for cdlfile in clist:
+                            print('catch {readspice ' + cdlfile + '}', file=ofile)
+                    else:
+                        print('catch {readspice ' + allcdllibname + '}', file=ofile)
+
                 # Load first file and remove the (UNNAMED) cell
                 if not os.path.isfile(allgdslibname):
                     print('load ' + os.path.splitext(glist[0])[0], file=ofile)
