diff --git a/database b/database
index 1320be7..f7f8375 160000
--- a/database
+++ b/database
@@ -1 +1 @@
-Subproject commit 1320be79e0f1e526ea4f9d454a80745cb5639eec
+Subproject commit f7f8375101dfa7f7d5ccb654ff8fcae73356ce48
diff --git a/fuzzers/machxo2/102-oscg/fuzzer.py b/fuzzers/machxo2/102-oscg/fuzzer.py
index eaac68b..a1310da 100644
--- a/fuzzers/machxo2/102-oscg/fuzzer.py
+++ b/fuzzers/machxo2/102-oscg/fuzzer.py
@@ -71,9 +71,11 @@
         cfg_r.setup()
         interconnect.fuzz_interconnect_with_netnames(
             cfg_r,
-            ["R1C4_JOSC_OSC"],
+            ["R1C4_JOSC_OSC",
+            "R1C4_JSTDBY_OSC"],
             bidir=True,
-            netdir_override={"R1C4_JOSC_OSC" : "driver"})
+            netdir_override={"R1C4_JOSC_OSC" : "driver",
+                             "R1C4_JSTDBY_OSC" : "sink"})
 
 if __name__ == "__main__":
     parser = argparse.ArgumentParser(description="OSCH Fuzzer.")
diff --git a/libtrellis/src/PyTrellis.cpp b/libtrellis/src/PyTrellis.cpp
index 03e211f..38ea056 100644
--- a/libtrellis/src/PyTrellis.cpp
+++ b/libtrellis/src/PyTrellis.cpp
@@ -304,6 +304,7 @@
             .def("set_value", &EnumSettingBits::set_value);
 
     class_<FixedConnection>(m, "FixedConnection")
+            .def(init<>())
             .def_readwrite("source", &FixedConnection::source)
             .def_readwrite("sink", &FixedConnection::sink);
 
diff --git a/libtrellis/src/RoutingGraph.cpp b/libtrellis/src/RoutingGraph.cpp
index 84eb625..85e2116 100644
--- a/libtrellis/src/RoutingGraph.cpp
+++ b/libtrellis/src/RoutingGraph.cpp
@@ -179,10 +179,25 @@
                       // wonderful 1-based column numbering, and lack of dedicated
                       // PIO tiles on the left and right.
                       // Top and bottom unaffected due to dedicated PIO tiles.
-                      bool pio_wire = (db_name.find("PADD") != string::npos ||
+                      // TODO: Convert to regex.
+                      bool pio_wire = (
+                          db_name.find("DI") != string::npos ||
+                          db_name.find("JDI") != string::npos ||
+                          db_name.find("PADD") != string::npos ||
+                          db_name.find("INDD") != string::npos ||
                           db_name.find("IOLDO") != string::npos ||
                           db_name.find("IOLTO") != string::npos ||
-                          db_name.find("JINCK") != string::npos);
+                          db_name.find("JCE") != string::npos ||
+                          db_name.find("JCLK") != string::npos ||
+                          db_name.find("JLSR") != string::npos ||
+                          db_name.find("JONEG") != string::npos ||
+                          db_name.find("JOPOS") != string::npos ||
+                          db_name.find("JTS") != string::npos ||
+                          db_name.find("JIN") != string::npos ||
+                          db_name.find("JIP") != string::npos ||
+                          // Connections to global mux
+                          db_name.find("JINCK") != string::npos
+                      );
 
                       if((id.loc.x == -1) && pio_wire)
                           id.loc.x = 0;
@@ -192,10 +207,24 @@
                   id.loc.x += std::stoi(g.substr(1));
 
                   if(id.loc.x > max_col) {
-                      bool pio_wire = (db_name.find("PADD") != string::npos ||
-                        db_name.find("IOLDO") != string::npos ||
-                        db_name.find("IOLTO") != string::npos||
-                        db_name.find("JINCK") != string::npos);
+                      bool pio_wire = (
+                          db_name.find("DI") != string::npos ||
+                          db_name.find("JDI") != string::npos ||
+                          db_name.find("PADD") != string::npos ||
+                          db_name.find("INDD") != string::npos ||
+                          db_name.find("IOLDO") != string::npos ||
+                          db_name.find("IOLTO") != string::npos ||
+                          db_name.find("JCE") != string::npos ||
+                          db_name.find("JCLK") != string::npos ||
+                          db_name.find("JLSR") != string::npos ||
+                          db_name.find("JONEG") != string::npos ||
+                          db_name.find("JOPOS") != string::npos ||
+                          db_name.find("JTS") != string::npos ||
+                          db_name.find("JIN") != string::npos ||
+                          db_name.find("JIP") != string::npos ||
+                          // Connections to global mux
+                          db_name.find("JINCK") != string::npos
+                      );
 
                       // Same deal as left side, except the position exceeds
                       // the maximum row.
